
.datファイルからこのエントリを削除しようとしています。 --More--
以下はファイルの一部です。たとえば、次のようになります。
Device ID: N7K-LAN(JAF1651ANDL)
IP address: 148.228.4.192
Interface: GigabitEthernet0/1, Port ID (outgoing port): Ethernet7/19
Device ID: CIRC_INF_IDF1
IP address: 148.228.107.252
Interface: FastEthernet0/20, Port ID (outgoing port): GigabitEthernet0/1
IP address: 148.228.107.252
Device ID: CIRC_INF_IDF3
IP address: 148.228.107.250
--More-- Interface: FastEthernet0/23, Port ID (outgoing port): GigabitEthernet0/1
IP address: 148.228.107.250
Device ID: CIRC_INF_IDF2
IP address: 148.228.107.251
Interface: FastEthernet0/22, Port ID (outgoing port): GigabitEthernet0/1
IP address: 148.228.107.251
Device ID: SEP1CAA0711CFBE
--More-- IP address: 148.228.199.103
Interface: FastEthernet0/2, Port ID (outgoing port): Port 1
Device ID: SEP1CAA0711CD67
IP address: 148.228.199.154
Interface: FastEthernet0/5, Port ID (outgoing port): Port 1
16進テキストエディタを使用して、見えない文字を識別しました。
これで文字シーケンス全体を削除しようとしましたが、まだ成功していません。
私の試みは次のとおりです。
tr -d --More-- < tabladetallada.dat >temporaltabla.dat
tr -d '\015' '\012' '\20' '\055' '\055' '\115' < tabladetallada.dat >temporaltabla.dat
sed 's/--More--␣//' tabladetallada.dat>tabladetallada2.dat
tr -d ' --More-- ^H^H^H^H^H^H^H^H^H ^H^H^H^H^H^H^H^H^H' < tabladetallada.dat >temporaltabla.dat
助けが必要ですか?
ありがとうございます。
viでは次のようになります。
Device ID: N7K-LAN(JAF1651ANDL)^M
IP address: 148.228.4.192^M
Interface: GigabitEthernet0/1, Port ID (outgoing port): Ethernet7/19^M
Device ID: CIRC_INF_IDF1^M
IP address: 148.228.107.252^M
Interface: FastEthernet0/20, Port ID (outgoing port): GigabitEthernet0/1^M
IP address: 148.228.107.252^M
Device ID: CIRC_INF_IDF3^M
IP address: 148.228.107.250^M
--More-- ^H^H^H^H^H^H^H^H^H ^H^H^H^H^H^H^H^H^HInterface: FastEthernet0/23, Port ID (outgoing port): GigabitEthernet0/1^M
IP address: 148.228.107.250^M
Device ID: CIRC_INF_IDF2^M
IP address: 148.228.107.251^M
Interface: FastEthernet0/22, Port ID (outgoing port): GigabitEthernet0/1^M
IP address: 148.228.107.251^M
Device ID: SEP1CAA0711CFBE^M
--More-- ^H^H^H^H^H^H^H^H^H ^H^H^H^H^H^H^H^H^H IP address: 148.228.199.103^M
Interface: FastEthernet0/2, Port ID (outgoing port): Port 1^M
Device ID: SEP1CAA0711CD67^M
IP address: 148.228.199.154^M
Interface: FastEthernet0/5, Port ID (outgoing port): Port 1^M
Device ID: SEP1CAA0711D11A^M
IP address: 148.228.199.4^M
Interface: FastEthernet0/10, Port ID (outgoing port): Port 1^M
Device ID: SEPece1a985bb74^M
IP address: 148.228.199.21^M
Interface: FastEthernet0/12, Port ID (outgoing port): Port 1^M
Device ID: SEPf84f5794c5c4^M
IP address: 148.228.199.23^M
Interface: FastEthernet0/11, Port ID (outgoing port): Port 1^M
Device ID: SEP1CAA0711D276^M
IP address: 148.228.199.102^M
--More-- ^H^H^H^H^H^H^H^H^H ^H^H^H^H^H^H^H^H^HInterface: FastEthernet0/9, Port ID (outgoing port): Port 1^M
Device ID: SEPece1a985b5d5^M
IP address: 148.228.199.24^M
Interface: FastEthernet0/14, Port ID (outgoing port): Port 1^M
Device ID: SEP1CAA0711497C^M
Interface: FastEthernet0/4, Port ID (outgoing port): Port 1^M
Device ID: SEPf84f5794c8c2^M
IP address: 148.228.199.22^M
Interface: FastEthernet0/3, Port ID (outgoing port): Port 1^M
Device ID: Circulo_Camaras4^M
--More-- ^H^H^H^H^H^H^H^H^H ^H^H^H^H^H^H^H^H^H IP address: 148.228.101.5^M
Interface: FastEthernet0/24, Port ID (outgoing port): GigabitEthernet1/0/24^M
IP address: 148.228.101.5^M
答え1
sed -e 's/^[ ]*--More--.*\x8//' -e 's/\xD$//'
s/ */../
個人的に好むのは文を書くことではありませんが、s/[ ]*/../
スペース/タブのときは*
当然左側の原子に付いているからです。GNU sed
六角形マッチング施設を含む\x
16進数注文する。
答え2
最も簡単な解決策は異なる考え方です。望ましくない文字を定義しようとするのではなく、代わりに目的の文字を定義し、他のものを削除してください。
sed 's/--More--[^ a-zA-Z0-9]*//' file
--More--
これにより、空白、文字、または数字ではなくゼロ個以上の文字が続く文字列が削除されます。データによっては、この設定を少し調整する必要があります(たとえば、許可_
または必要なものなど)。
これで、質問の最初の文字に--More--
バックスペース文字(Octal 010、Hex 7、ASCII \b
)が含まれているように見えるので、次のようにすることもできます。
perl -pe 's/[\b]//g' file
--More--
または、次の項目も削除してください。
perl -pe 's/--More--[\b]+//g' file