如何在文本文件中找到一个单词(例如“/ dn”)并在下一行添加另一个单词(例如“/ period”)?
我想使用 MS DOS 执行它。
我的意思是这个“/dn”(/dn 后面是空格)是一个单词(不是文本的片段,而是整个单词——/dn 后面可以是同一行上的其他单词),我想找到它,然后在下一个新行中查找它,而不是替换其他行和其他单词。我的意思是在已经存在的行之间创建一个新行。
例如,如果我有这个输入文件:
/dn
/name
我想要这个输出:
/dn
/period
/name
并且“/”符号应该与 dn 一起,而不是没有它。
答案1
1. 使用sed
append
/period
如果您想要在每行后面添加一个包含单词的全新行/dn
,则使用sed
附加:
sed '\:\dn:a/period' filename
您的样本的输出将是:
/dn
/period
/name
1. 注意事项
:\dn:
搜索\dn
a/period
附加/period
到下一行(新行)。
2. 搜索并附加到下一行的末尾
如果您希望/period
在下一行末尾使用它,如下所示:
sed ':/dn: { N; s:$:/period: }' filename
以下是示例输入:
/dn
/name
输出:
/dn
/name /period
2. 注意事项
首先,我们搜索带有 的行,然后在 ( ) 下一行 ( )的末尾/dn
添加。/period
$
N;
答案2
如果file.txt
包含字符串/dn
,那么您可以运行此命令:
$ grep -i "\/dn" file.txt | xargs -I{} printf "%s\n/period" {}
它将打印
/dn
/period