如何运行多个Unix命令?

时间:2013-10-21 06:45:56

标签: linux command

所以我必须立刻运行剪切和排序文件。我正在使用这个命令:

sort -k2 customers;cut -f7-31 customers

目标是剪切第7-31行,然后按字母顺序组织它们,但我不知道如何实现它。任何输入都会有所帮助,谢谢。

2 个答案:

答案 0 :(得分:2)

  

目标是切割第7-31行......

您可以使用sed

sort -k2 customers | sed '7,31!d'

这会将sort的输出管道传输到sed,这会显示sort输出中的第7 - 31行(包括两者)。


要选择字符范围,您需要将-c选项提供给cut而不是-f(选择字段):

sort -k2 customers | cut -c7-31

将从sort输出中的每一行中选择字符7 - 31。


为了sort最终输出,请使用另一个管道:

sort -k2 customers | cut -c7-31 | sort

答案 1 :(得分:1)

这里的关键是使用管道,它是shell中最强大的东西之一。见Unix Pipes

unix中的管道非常棒;强大。我已经提到了吗?

回答你的问题;将;更改为|并删除文件名

sort -k2 customers | cut -f7-31 

将对客户文件运行sort并将其输出发送到cut的输入;没有临时文件。

一般来说你会做

sort -k2 customers | cut -f7-31 > customers.modified

您可以在管道中拥有任意数量的命令;所以要删除你要重复的

sort -k2 customers | uniq | cut -f7-31 > customers.modified