SHELL 在指定行的前后插入指定内容

SHELL 在指定行的前后插入指定内容,第1张

原文件:

现在要在第二行即“bbbb”行的下面添加一行,内容为“xiaowu”

如果要加两行“xiaowu”可以用一下语句,注意用“\n”换行

如果要在第二肆饥谈行即“bbbb”行的上添加一行,内容为“xiaowu”,可以把参数“a”换成“i”

以上文件中只有一行匹配,如果文件中有两行或者多行匹配,结果有是如何呢?

由结果可知,每个匹配行的下一行都会被添加“xiaowu”

那么如果指向在第二个“bbbb”的下一行添加内容“xiaowu”,该如何 *** 作呢?

可以考虑先获取第二个“bbbb”行的行号,然后根据行号在此行的下一行添加“xiaowu”

获取第二个“bbbb”行的行号的方肢州法:

方法一:

方法二:

由结裂碰果可知第二个“bbbb”行的行号为4,然后再在第四行的前或后添加相应的内容:

向指定行的末尾添加指定内容,比如在“ccccc”行的行尾介绍“ eeeee”

原文链接

用awk,一条命令就可以搞定:

awk '{print 竖衡$0" "FNR}' file.txt >result.txt

其中,$0表示当前处理的文件行内容,FNR表示当前处理的文件行行号。

结果存在result.txt中。

为余敬拓展思路,下面用一个不同的方法:

用sed得到每行行号,存入一个tmp文件,然后用paste合并这两个行数相同的文件就得到了。

假设你的原始文件名称为file.txt。

#!/bin/sh

sed 余毁做-n '=' file.txt >tmp

paste file.txt tmp >result.txt

rm -f tmp


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11971391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存