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

Lun*_*nsy 4 command-line text-processing

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

我想使用 MS DOS 执行它。

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

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

/dn
/name
Run Code Online (Sandbox Code Playgroud)

我想要这个输出:

/dn
/period
/name
Run Code Online (Sandbox Code Playgroud)

和“/”符号应该带 dn,而不是没有它。

Rav*_*ina 10

1. 使用sed附加

如果你想要一个全新的一行,/period每行包含一个单词,/dn然后使用sedappend:

sed '\:\dn:a/period' filename
Run Code Online (Sandbox Code Playgroud)

您的样本的输出将是:

/dn
/period
/name
Run Code Online (Sandbox Code Playgroud)

一、注意事项

  • :\dn: 搜索 \dn
  • a/period追加/period到下一行(新行)。

2. 搜索并追加到下一行的末尾

如果你想要/period在下一行的末尾,那么像这样使用它:

sed ':/dn: { N; s:$:/period: }' filename
Run Code Online (Sandbox Code Playgroud)

这是一个示例输入:

/dn
/name
Run Code Online (Sandbox Code Playgroud)

和输出:

/dn
/name /period
Run Code Online (Sandbox Code Playgroud)

2.注意事项

首先,我们搜索带有 的行/dn,然后/period在 ( $)的末尾添加下一行 ( N;)。