我有一个包含我的日志信息的文件,如下所示:
Sat May 20 00:34:03 EST 2017 -- lane3a 4 0 -- lane3b 5 4 9 Total active sales: 4 Total bidders in sales: -- caster3a 0 -- caster3b 0 0 Total A/V 0 Estimated containers Sat May 20 00:35:03 EST 2017 -- lane3a 4 0 -- lane3b 5 4 9 Total active sales: 4 Total bidders in sales: -- caster3a 0 -- caster3b 0 0 Total A/V 0 Estimated containers Sat May 20 00:36:04 EST 2017 -- lane3a 4 0 -- lane3b 5 4 9 Total active sales: 4 Total bidders in sales: -- caster3a 0 -- caster3b 0 0 Total A/V 0 Estimated containers
我正在尝试将此日志数据拆分为几行,因此如下所示:
Sat May 20 00:34:03 EST 2017 -- lane3a 4 0 -- lane3b 5 4 9 Total active sales: 4 Total bidders in sales: -- caster3a 0 -- caster3b 0 0 Total A/V 0 Estimated containers
Sat May 20 00:35:03 EST 2017 -- lane3a 4 0 -- lane3b 5 4 9 Total active sales: 4 Total bidders in sales: -- caster3a 0 -- caster3b 0 0 Total A/V 0 Estimated containers
Sat May 20 00:36:04 EST 2017 -- lane3a 4 0 -- lane3b 5 4 9 Total active sales: 4 Total bidders in sales: -- caster3a 0 -- caster3b 0 0 Total A/V 0 Estimated containers
有什么想法吗?
使用sed
:
$ sed 's/containers */containersn/g' file
Sat May 20 00:34:03 EST 2017 -- lane3a 4 0 -- lane3b 5 4 9 Total active sales: 4 Total bidders in sales: -- caster3a 0 -- caster3b 0 0 Total A/V 0 Estimated containers
Sat May 20 00:35:03 EST 2017 -- lane3a 4 0 -- lane3b 5 4 9 Total active sales: 4 Total bidders in sales: -- caster3a 0 -- caster3b 0 0 Total A/V 0 Estimated containers
Sat May 20 00:36:04 EST 2017 -- lane3a 4 0 -- lane3b 5 4 9 Total active sales: 4 Total bidders in sales: -- caster3a 0 -- caster3b 0 0 Total A/V 0 Estimated containers
或:
$ sed 's/(containers) */1n/g' file
您可以将整个文件读入 Bash 变量,并使用参数扩展将containers
后的空格替换为换行符:
text=$(< infile)
echo "${text//containers /containers$'n'}"
尝试:
perl -i.bkp -pe 's/containers/containersn/' file.log
这假设单词containers
应该是每行末尾的内容