我需要检查很多配置文件,并且喜欢cat
,而不用以评论开头的行。
我在shell中输入以下内容:
egrep -v '^[[:blank:]]*#' *filename* | awk 'NF'
有效:
$ egrep -v '^[[:blank:]]*#' /etc/nginx/nginx.conf | awk 'NF'
user nginx nginx;
worker_processes 4;
pid /var/run/nginx.pid;
events {
worker_connections 768;
}
http {
sendfile on;
}
而不是每次都输入它,我希望在我的批处理上添加别名,但我找不到这样做的方法(既不能在网上查找信息:()。
我试过了:
testfunc () { egrep -v '^[[:blank:]]*#' $0 | awk 'NF'; }
但它不起作用: - (
$ testfunc /etc/nginx/nginx.conf
没有返回任何内容:( 我错过了什么?
答案 0 :(得分:4)
alias
无法获取参数。相反,使用一个实际上就是你已经使用的函数。
为此,请使用$1
而不是$0
($1
表示您提供的第一个参数)。
总之,这应该有效:
testfunc () { egrep -v '^[[:blank:]]*#' "$1" | awk 'NF'; }
^^
另请注意,这可以使用单个awk
处理:
testfunc () { awk '!/^\s*#/ && NF' "$1"; }
^^^^^^^ ^^
| lines with some content
lines not starting with (spaces) + #