wdjh.net
当前位置:首页 >> Awk 按字符串分割 >>

Awk 按字符串分割

假设有字符串: str="abcdefg"要截取c和f之间的字符串,得到de。 可以用split函数,以c和f为分隔符,将字符串分割,取分割后的第二个字段。 echo "$str" | awk '{split($0,a,"[cf]");print a[2]}' 另一种方法,也可以分别计算出c和f在字符串中的...

awk -F "字符串" 用-F参数后而跟一个字符串,这个字符串就被当成正则处理生成分隔符 如果没有特殊字符的话,原始字符串就被设置为字段分隔符

当有多个分隔符的时候,不能在外面直接用 -F,而是要用BEGIN{FS="[:=;]"} echo "RLTDP:MSC=ALL;" | awk 'BEGIN{FS="[:=;]"}{print $1"|"$2"|"$3}'

有很多命令都可以实现你要求的功能,比如 awk: echo "1:3:5" | awk -F ":" '{print $NF}' sed: echo "1:3:5" | sed 's/.*:\([^:]*\)$/\1/'

awk只能某一个分隔符切割字符串 ` echo "aa,bb,cc"|awk -F ',' '{print $1} '` 输出结果就是aa $1 就是第一项 $NF是最后一项 你这种分隔符不一致的没法用awk分割啊

# echo a:b:c|sed 's/:/\n/g' a b c # echo a:b:c|awk -F: '{for(i=1;i

[root@localhost ~]# cat -A asd atqwe$as dfgh$d dfgh$fga dghsdf$dg shsgh$sdafsdga$[root@localhost ~]# echo `cat -A a`sd atqwe$ as dfgh$ d dfgh$ fga dghsdf$ dg shsgh$ sdafsdga$[root@localhost ~]# echo `cat -A a`|awk -F"$" '{print...

用cut最简便(参见 小米肥猫 的回答)。 另外,Bash中特有的字符串处理方法(掐头去尾法)也比较常用(参见下面的链接)。 对于这道题来说: var=“dfhjk_fewsk>dfakhi=vshbjy_df>brfdgr

# echo "a+c-b+d-f_g"|awk -F"[+-_]" '{print $1,$3,$5}' a b f

bash里面可以这样: a="12345/abcde"echo "${a%/*}/" #去除/及其之后的全部内容,最后再补上/用awk的话可以这样: a="12345/abcde"echo "$a" | awk -F/ '{print $1"/"}' #设置/为字段分隔符,打印第1个字段后再补上/

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