Chinaunix

标题: Awk分隔符 [打印本页]

作者: yanghaiquanyyy    时间: 2014-07-02 00:30
标题: Awk分隔符
-F'[:\t]'   是:和\t还是或呀
作者: yanghaiquanyyy    时间: 2014-07-02 00:33
本帖最后由 yanghaiquanyyy 于 2014-07-02 10:53 编辑

awk -F 后面跟分隔符‘[空格:]’,其中[空格:]多分隔符写法,意思是以空格或冒号做分隔

可以同时使用多个域分隔符,这时应该把分隔符写成放到方括号中,如$awk -F'[:\t]' '{print $1,$3}' test,表示以空格、冒号和tab作为分隔符

两个地方看到的不一样
作者: seesea2517    时间: 2014-07-02 09:22
回复 2# yanghaiquanyyy


    只要在中括号内,就都是或的关系,表示任意一个都可以。楼主可以参考正则表达式的中括号含义,这里是一样的。
作者: blackold    时间: 2014-07-02 09:35
回复 2# yanghaiquanyyy


    一样的啊。就是"或"的意思。
作者: o枫叶o飘零    时间: 2014-07-02 10:11
回复 2# yanghaiquanyyy


    第二行的栗子里面是以冒号和tab做分隔符吧!!  是木有空格滴
作者: yestreenstars    时间: 2014-07-02 10:13
是“或”~
作者: fxpbupt    时间: 2014-07-02 11:12
或的关系  
作者: yanghaiquanyyy    时间: 2014-07-02 11:13
朋友们看下这个例子
echo "abcd1234=:defg"|awk -F'[=:]' '{print $1,$2,$3,NF}'
abcd1234  defg 3
echo "abcd1234=:defg"|awk -F'[=:]' '{print $1$2$3,NF}'
abcd1234defg 3

$2 在这里应该是什么呀
作者: blackold    时间: 2014-07-02 11:16
回复 8# yanghaiquanyyy


    自己try一下就知道了。
  1. echo "abcd1234=:defg"|awk -F'[=:]' '{print "<"$2">"}'
复制代码

作者: yanghaiquanyyy    时间: 2014-07-02 11:46
回复 9# blackold


    为啥$2 会为空啊, 黑哥, 我理解的是
echo "abcd1234=:defg"|awk -F'[=:]' '....'  

这样将会是 $1是 abcd1234  $2 是 defg NF 是2
作者: yestreenstars    时间: 2014-07-02 12:15
回复 10# yanghaiquanyyy

改成这样就能得到你要的结果:
-F'[=:]+'
   
作者: jeffreyst    时间: 2014-07-02 15:34
mark,awk必备知识~
作者: 用户名注册后不能更改    时间: 2014-07-02 17:46
“以空格、冒号和tab作为分隔符”
意思是,空格作为分割符,冒号也作为分割符,tab也作为分割符。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2