AWK拆分字符串然后也将其删除

时间:2016-06-01 21:32:01

标签: awk split delimiter

需要帮助拆分以下内容。

100GB@sdb,100GB@sdc

进入这个

sdb sdc

我尝试过的所有东西一直在给我

sdb 100GB

2 个答案:

答案 0 :(得分:0)

对于任意数量的磁盘,请尝试:

$ echo '100GB@sdb,100GB@sdc,10KB@sdd' | awk -F'[@,]' '{for (i=2;i<=NF;i+=2) printf "%s ",$i; print ""}'
sdb sdc sdd 

原始问题的答案

使用awk

$ echo '100GB@sdb,100GB@sdc' | awk -F'[@,]' '{print $2,$4}'
sdb sdc

使用sed

$ echo '100GB@sdb,100GB@sdc' | sed 's/^[^@]*@//; s/,[^@]*@/ /'
sdb sdc

使用bash

$ s='100GB@sdb,100GB@sdc'; s=${s#*@}; echo ${s/,*@/ }
sdb sdc

答案 1 :(得分:0)

替代AWK命令:

% awk 'BEGIN{RS="[@,]";ORS=" "}NR%2 == 0' <<< '100GB@sdb,100GB@sdc'
sdb sdc

这将分为@,,然后打印所有偶数块:

100GB@sdb,100GB@sdc
# 1    2    3    4  <- chunk