分类: Python/Ruby
2011-04-26 15:03:09
RT是输出记录分隔符,NR是记录数,即记录分割符之间的记录数(\n分割的话就是行数罗),$0RT是$0 和RT不是$ORT
变量参考
http://blog.chinaunix.net/uid-23504396-id-3482067.html
awk '{print "\047"$1"\047"}' |
解决办法三 |
就是用变量
1.txt内容
@{#{2012-12-12}#{500}#{Exception: parameter is null
com.test.A(12);
com.test.B(14)
}#}@
lolia!!!
lll
@{#{2012-12-12}#{500}#{Exception: parameter is null
ccc
}#}@
提取@{ 和 }@之间的所有内容
cat 1.txt | sed ':st;N;s/\n/\t/g;tst' | grep -oP '(?<=@{).+?(?=}@)'
首先合并所有行,把所有\n替换成\t
然后grep 打印出所有@{ ... }@之间的字符
-o表示只打印之间的,不指定打话lolita lll都会打印出来
P表示grep使用perl的正则,从看到的!非常好用强烈推举!
shell字符串直接处理
http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html
表达式
含义
${var}
变量var的值, 与$var相同
${var-DEFAULT}
如果var没有被声明, 那么就以$DEFAULT作为其值 *
${var:-DEFAULT}
如果var没有被声明, 或者其值为空, 那么就以$DEFAULT作为其值 *
${var=DEFAULT}
如果var没有被声明, 那么就以$DEFAULT作为其值 *
${var:=DEFAULT}
如果var没有被声明, 或者其值为空, 那么就以$DEFAULT作为其值 *
${var+OTHER}
如果var声明了, 那么其值就是$OTHER, 否则就为null字符串
${var:+OTHER}
如果var被设置了, 那么其值就是$OTHER, 否则就为null字符串
${var?ERR_MSG}
如果var没被声明, 那么就打印$ERR_MSG *
${var:?ERR_MSG}
如果var没被设置, 那么就打印$ERR_MSG *
${!varprefix*}
匹配之前所有以varprefix开头进行声明的变量
${!varprefix@}
匹配之前所有以varprefix开头进行声明的变量
echo ${filedir}
/root/rpmbuild/BUILDROOT/erlang-R15B03-3.x86_64/lolita-glalga
echo $buildroot
/root/rpmbuild/BUILDROOT/erlang-R15B03-3.x86_64
echo ${filedir/"${buildroot}"/} #这里不用引号也可,但是在rpmbuild的spec中一定要用引号,比如 ln -sf ${m/"%buildroot"/} %_mandir/man3/$(basename $m .gz)erl.gz
/lolita-glalga