我正在尝试编辑一个包含多行如下内容的文本文件:
avaya logs 20171202 000000 (9).txt: 660119211mS CMLOGGING: CALL:2017/12/0111:14,00:00:16,008,203,O,208,208,Jon,,,1,,""n/a,0
CALL
我想删除每行中前面的内容。
我认为该sed
命令可以做到这一点,但我不太熟悉。
我该怎么做?
答案1
您可以awk
按照以下方式使用:
awk -F "CALL" '{print "CALL"$2}' filename
结果是:
CALL:2017/12/0111:14,00:00:16,008,203,O,208,208,Jon,,,1,,""n/a,0
细节:
- 使用
-F
或--field-separator
标志,并设置称呼作为字段分隔符 - 打印字符串“CALL”,后跟
- 该行中的第二个元素(当称呼是分隔符)
注意:您可以使用以下方法将输出重定向到另一个文件:
awk -F "CALL" '{print "CALL"$2}' filename > newfilename
答案2
使用 sed:
sed -e 's/.*CALL:/CALL:/' input.txt > output.txt
如果您想就地编辑输入文件,请添加该-i
选项。