如何在 .txt 文件中找到一个单词并在其后添加文本?

如何在 .txt 文件中找到一个单词并在其后添加文本?

如何在文本文件中找到一个单词(例如“/ dn”)并在下一行添加另一个单词(例如“/ period”)?

我想使用 MS DOS 执行它。

我的意思是这个“/dn”(/dn 后面是空格)是一个单词(不是文本的片段,而是整个单词——/dn 后面可以是同一行上的其他单词),我想找到它,然后在下一个新行中查找它,而不是替换其他行和其他单词。我的意思是在已经存在的行之间创建一个新行。

例如,如果我有这个输入文件:

/dn
/name

我想要这个输出:

/dn
/period
/name

并且“/”符号应该与 dn 一起,而不是没有它。

答案1

1. 使用sedappend

/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

相关内容