8

我有一个示例 [文件],我想抓取第 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.

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

4

2 回答 2

19

sed允许您按数字指定地址,如下所示:

sed -n '3,6p'

-n是为了防止sed自动打印输出。

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

sed -n '3,6p; 11,13p' | sort -k2 > 3_6-11_13
于 2012-10-02T00:18:17.993 回答
3

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

$ sed -e 'comm' -e 'comm' file.txt

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

$ sed 'comm;comm;comm' file.txt
于 2012-10-02T00:13:17.947 回答