3
我大量使用管道多个Linux shell命令,例如:在外壳绕过文件头通用解决方案命令
grep BLAH file1 | sed 's/old/new/' | sort -k 1,1 > file3
我的文件通常有一个标题行,我经常要保持它在整个管道。所以,例如,我希望grep,sed和从第2行开始排序,同时保持第一行不变。
我正在寻找一些通用的解决方案,给出一些命令将保存标题。我通常在管道前将头文件写入文件,然后在管道结束后将其回收。我已经开始使用zshell,所以我想知道这是否有助于获得更简化的解决方案。
也许是这样的:
(箭头是图像中的管道)
,但我不知道怎么去,要在zshell工作,或者如果它甚至有可能。一个问题是我需要在两个管道上使用命令来跟踪第一个管道分裂。
任何创意解决方案?
我不确定abouth zsh,但用bash可以使用'(head -2 file1; tail -n +3 file1 | grep BLAH | sed's/old/new /'| sort -k 1,1 )> file3' – 2013-04-09 04:39:56
@Vaughn你似乎已经考虑了两行标题。你可能意思是'(头-n +1等等;尾-n +2等等| sed's/old/new'| sort -k 1,1)> outfile' – devnull 2013-04-09 07:04:41
@devnull:你是对的。我习惯于使用两个标题行来处理文件,只是没有想到地使用它。 – 2013-04-09 11:35:17