使用Linux shell脚本从文件中删除^ H和^ M个字符

Has*_*san 12 linux shell

如何使用Linux shell脚本从文件中删除^ H和^ M字符?

^[[0^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H   rcv-packets: 0
^[[0^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H^H ^H      rcv-errs: 0
     rcv-drop: 0
     rcv-fifo: 0
     rcv-frame: 0
Run Code Online (Sandbox Code Playgroud)

Pat*_* S. 23

您所看到的是控制字符,您只需删除它们即可 tr

cat your_file |
tr -d '\b\r'
Run Code Online (Sandbox Code Playgroud)

这个更好:

tr -d '\b\r' < your_file
Run Code Online (Sandbox Code Playgroud)


sar*_*old 7

立即想到两种方法:

  • tr -d control+v control+h
  • sed 's/control+v control+h//g'

这两个都在行动:

$ od -c test
0000000  \b   h   e   l   l   o  \b   t   h   e   r   e  \b  \n
0000016
$ sed 's/^H//g' < test | od -c
0000000   h   e   l   l   o   t   h   e   r   e  \n
0000013
$ tr -d ^H < test | od -c
0000000   h   e   l   l   o   t   h   e   r   e  \n
0000013
Run Code Online (Sandbox Code Playgroud)


Ser*_*gey 0

使用sed实用程序。请参阅下面的示例

sed 's/%//' file > newfile
echo "82%%%" | sed 's/%*$//'
echo "68%" | sed "s/%$//" #assume % is always at the end.
Run Code Online (Sandbox Code Playgroud)