0
我要投入大量的濾波在bash腳本,讓我的過濾命令短一點:如何正確處理Bash腳本中的IO?
#before:
$ cat unreadable.log | grep "bla" |[...]| sed "s/blubb//" >>readable.log
#after:
$ cat unreadable.log | the_script_I_m_writing.sh >>readable.log
但是,如何正確處理IO中的bash腳本,該after
線可如圖所示執行? 正如你可以在bash腳本里面看到的那樣,將會有很多簡單的命令組合在一起。所有這些管道應該從stdin
開始,並將最終結果發送到stdout
。
您也可以跳過'grep',因爲'sed'可以做到這一點:'sed的 '/ BLA/S/blubb //''(除了OP顯示'grep'和'sed'之間可能存在一些命令 –
@ DennisWilliamson實際上,在這兩種情況下替換隻應用於匹配行,而不匹配的行不會被sed刪除 –
很簡單:'sed -n'/ bla/s/blubb // p'' –