删除文本文件每行的第一部分

删除文本文件每行的第一部分

我正在尝试编辑一个包含多行如下内容的文本文件:

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

细节:

  1. 使用-F--field-separator标志,并设置称呼作为字段分隔符
  2. 打印字符串“CALL”,后跟
  3. 该行中的第二个元素(当称呼是分隔符)

注意:您可以使用以下方法将输出重定向到另一个文件:

awk -F "CALL" '{print "CALL"$2}' filename > newfilename

答案2

使用 sed:

sed -e 's/.*CALL:/CALL:/' input.txt > output.txt

如果您想就地编辑输入文件,请添加该-i选项。

相关内容