使用linux命令sed选择多行

dem*_*et8 8 linux shell awk sed

我有一个示例[文件],我想抓住第3-6行和第11 - 13行,然后用一行命令排序并保存为3_6-11_13.这些是我到目前为止使用的命令,但我没有得到所需的输出:

sed -n '/3/,/6/p'/11/,/13/p file_1 > file_2 | sort -k 2 > file_2  & sed -n 3,6,11,13p file_1 > file_2 | sort -k 2 file_2.
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来缩短这一点.我曾经考虑过使用awk,但到目前为止我一直在使用sed.

Tim*_*ote 16

随着sed你被允许用数字像这样指定地址:

sed -n '3,6p'
Run Code Online (Sandbox Code Playgroud)

-n是保持sed从自动打印输出.

然后,如果您gsed通过使用分号分隔这些命令,则可以运行多个命令:

sed -n '3,6p; 11,13p' | sort -k2 > 3_6-11_13
Run Code Online (Sandbox Code Playgroud)


b3h*_*0th 5

sed 使用 -e 选项组合多个命令

$ sed -e 'comm' -e 'comm' file.txt
Run Code Online (Sandbox Code Playgroud)

或者您可以使用分号分隔命令

$ sed 'comm;comm;comm' file.txt
Run Code Online (Sandbox Code Playgroud)