Bash 如何使用sed搜索每两行中的短语
我想在文档中搜索一个短语。 但也许这个短语被分成了两行。 所以我想做的是: 搜索: 第1行和第2行 第2行和第3行 第3行和第4行 我是初学者,我想练习使用sed。 那么,我该如何处理sed呢? 有什么想法吗 这是行不通的Bash 如何使用sed搜索每两行中的短语,bash,search,sed,Bash,Search,Sed,我想在文档中搜索一个短语。 但也许这个短语被分成了两行。 所以我想做的是: 搜索: 第1行和第2行 第2行和第3行 第3行和第4行 我是初学者,我想练习使用sed。 那么,我该如何处理sed呢? 有什么想法吗 这是行不通的 $ sed 'N;s/line2.line3/line23/' test.txt line1 line2 line3 line4 line5 1sed读取第一行和第二行,然后搜索。 2 SED读取第三行和第四行,然后搜索。 ...... 因此,如果第2行和第3行中的短语
$ sed 'N;s/line2.line3/line23/' test.txt
line1
line2
line3
line4
line5
1sed读取第一行和第二行,然后搜索。
2 SED读取第三行和第四行,然后搜索。
......
因此,如果第2行和第3行中的短语,我将错过它。
我能读上一行吗
更新
谢谢@Beta的帮助
它起作用了。但我还是有点困惑。
还有一些问题
我已经看过手册了
n:将下一行输入读入模式空间。
N:将下一行输入追加到模式空间。
d:删除模式空间。开始下一个周期。
D:最多删除模式空间中的第一条嵌入换行符。开始下一个循环,但如果模式空间中仍有数据,则跳过从输入读取
1读取第一行和第二行,然后打印第一行。
2sed清空其图案空间,然后读取第三行和第四行,然后打印第三行。
我说得对吗
sed -n 'N;P;D' test.txt
1读取第一行和第二行,然后打印第一行。
2sed不清空其图案空间,然后读取第三行,然后打印第二行。
我说得对吗
sed -n 'N;P;D' test.txt
为什么下一行在命令N和上述两个命令N中有不同的行为?
另外,我想是美元!没有必要。有多种方法可以做到这一点。这与您所尝试的非常接近:
sed '$!N;s/line2.line3/line23/;P;D;'
做这件事的方法不止一种。这与您所尝试的非常接近:
sed '$!N;s/line2.line3/line23/;P;D;'
给出一些输入文件和预期输出的例子,多行中有断句…给出一些输入文件和预期输出的例子,多行中有断句…非常感谢。但我仍然对n,n和D有点困惑。我更新了我的问题。你能再帮我一次吗?附言:我想是美元!在你提供的命令中没有必要。非常感谢。但我仍然对n,n和D有点困惑。我更新了我的问题。你能再帮我一次吗?附言:我想是美元!在您提供的命令中,不需要。
sed '$!N;s/line2.line3/line23/;P;D;'