2015-08-31 40 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