www.4585.net > Awk 去除首尾空格

Awk 去除首尾空格

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

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

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

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

# echo " baby "|awk '{sub(" baby ","baby");print}' baby 通过sub()进行替换

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

awk ‘{ a=$1;b=$2;gsub("\\*"," ",a);print a,b}' test.log 替换*号的时候需要转义,转义是\,但是\也需要转义所以就需要两个\\

删除第一列: 方法1: awk '{$1=;print $0}' file >file2 方法2: sed -e 's/[^ ]* //' file >file2 删除空格: sed -i 's/ //g' file

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

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

网站地图

All rights reserved Powered by www.4585.net

copyright ©right 2010-2021。
www.4585.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com