
--More--
.dat ファイルからこれを削除しようとしています。 これは、例としてファイルの一部です。
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/ */../
私の個人的な好みとしては、スペース/TAB の場合、左側のアトムに目に見える形で接続されるs/[ ]*/../
ように記述する方がよいでしょう。*
GNU sed
16進数のマッチング機能があり、\x
16進数順序。
答え2
最も簡単な解決策は、逆に考えることです。不要な文字を定義するのではなく、必要な文字を定義して、それ以外を削除します。
sed 's/--More--[^ a-zA-Z0-9]*//' file
--More--
これにより、文字列と、その後のスペース、文字、数字以外の 0 個以上の文字が削除されます。データによっては、その設定を少し調整する必要があるかもしれません (たとえば、許可する_
など、必要なもの)。
--More--
さて、質問の最初の部分にはバックスペース文字 (8 進数 010、16 進数 7、ASCII \b
) が含まれているようですので、次のようにすることもできます。
perl -pe 's/[\b]//g' file
または、--More--
も削除するには:
perl -pe 's/--More--[\b]+//g' file