我想用它sed
来给我文件中的一些行。我只想在我知道的文件的某些部分中提取这些行。例如,我有一个包含 100 行的文件,我正在寻找第 10 行和第 30 行内具有特定模式的行。
我当前的解决方案是使用两个sed
命令:第一个命令打印我所拥有的行号之间的所有内容,例如
sed -n "10,30p" target_file.file
第二个使用模式搜索该结果
sed -n '/pattern/p'
所以最后我有这个:
sed -n "10,30p" target_file.file | sed -n '/pattern/p'
有没有办法从两个命令中生成一个命令?
答案1
你可以:
$ sed -n '10,30{
/pattern/p
}' <file
这是目前的标准语法。您还可以使用:
$ sed -n '10,30{/pattern/p;}' <file
在下一个 POSIX 版本中。