2015-08-31 38 views
0

我有一點我經常使用的命令:通行證確切參數的功能

awk 'BEGIN {RS="dn"} {gsub("\n ", ""); print $0}'

解析數據我想要的方式。我沒有寫出來,而是將它保存下來,只要我想使用它就可以複製/粘貼它。我想變成一個簡單的函數fixline.sh,這樣,而不是做的:

my_command | awk 'BEGIN {RS="dn"} {gsub("\n ", ""); print $0}'

每一次,我可能只是做:

my_command | fixline.sh

,但我不知道怎麼樣用bash來完成。我試圖

echo "[email protected]" | awk 'BEGIN {RS="dn"} {gsub("\n ", ""); print $0}'

但這並不做我想做的。我怎樣才能做到這一點?

回答

4

使用功能

fixline() { 
    awk 'BEGIN {RS="dn"} {gsub("\n      ", ""); print $0}' 
} 

就用作爲awk將從標準輸入就好讀取(如你已經知道)

my_command | fixline 

爲了完整起見,雖然上面是在每一個可能的優越方式,也可以使用這個具體情況的別名

alias fixline='awk '\''BEGIN {RS="dn"} {gsub("\n      ", ""); print $0}'\' 

th如果您希望fixline採用可選參數,則別名不起作用。

+0

輝煌。我從來沒有想過只把它作爲我的'.bashrc'中的一個函數,但這正是我所希望的。 – drjrm3

+2

我什至不打擾顯示別名。閱讀起來比較困難,對功能沒有任何價值。 – chepner