llgd.net
当前位置:首页 >> Awk 空格 >>

Awk 空格

1 echo " baby go " | awk '{sub("^ *","");sub(" *$","");print}' 使用sub替换,结合正则中的限位符^和$即可。 ^匹配字符串开头位置,$匹配字符串结尾位置。 结尾的空格有没有去掉,直接这样看不出。可以使用下面的方式测试:

awk -F" *"当 -F后面跟着一个以上字符时,这个字符串被当成正则表达式,所以" *"两个空格跟一个星号表示用一个或多个空格做分隔符

第一种方式,在分割域的时候就把空格去掉,-F "[abc ]+" 第二种方式,获取出来后使用sed进行替换,awk -F" " '{print $1}'|sed 's/ //g'

我不太明白你的问题,如果一二列是空格分开,三四列是tab分开,那么你怎么知道列数是一二三四的?所以我觉得你最好把原始数据列出,同时说出你的要求,这样别人比较好帮你。 比如数据为 1 2 3:4 a b:c:d 象你说的一二列是空格分,三四列是:...

试: a=(`sed -n '1,235'p idc11.txt|awk -F "[ |]" '{print $1$2}'`) b=(`sed -n '1,235'p idc11.txt|awk -F "[ |]" '{print $3}'`)

用[]括号起来,请采纳

使用转义符就可以了,\+space

echo "aa bb cc dd" | awk '{print $NF}'NF (Number of Fields),字段数目,这是awk内置变量。因此$NF即为最后一个字段的值。 awk默认的字段分隔符为空白符(包括空格和TAB)。

awk默认是用 空格,tab作为字段分隔符的,不只是前面的空格被去掉,实际上所有的空格都被去掉了

你先试试在命令行这么做:echo `cat list` 然后你仔细看看你脚本里面 `echo $line` 的结果 然后你试试自己总结一下,为什么会脚本会输出这样的结果 想不到再留言给我吧 cat会输出文件原本的样子。

网站首页 | 网站地图
All rights reserved Powered by www.llgd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com