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