sed交换任何带有前缀的字符串

时间:2018-02-25 01:18:38

标签: string awk sed swap

大家好我尝试搜索并查找任何提示,但没有找到如何实现在多列中交换任何匹配的字符串前缀A_以放入第4列 [在此输入图像说明] [1]

是什么引导我在下面,但经过多次尝试与正则表达式后,我坚持

  

sed' s /(unix)(linux)/ \ 2 \ 1 /'文本文件   linux unix os   windows mac os

谢谢

7      VAL  Z_SPLITIATO       A_DDDEW       84_SLA    841_SLON1   840_H1_S  IOOWWW
4      VAL  Z_SPLS_H5_C       A_AFASD       SPIT_OAI  HD_CLA
4      VAL  Z_SPLS_H6_C       A_ADFEEE      SPIT_OAI  A_ADFEEE
4      VAL  Z_SPLS_H7_C       A_SSEEWR      HDS_H7OAIS 
7      VAL  Z_SPLITIATO       A_EEEA        SPL_N4_P1  84SLOSA     IOOWWW  840_H1_SL

Value / Word with "A_" is placed randomly in multiple columns , number of columns is 20 so i placed here just few of them

TO:

{{1}}

1 个答案:

答案 0 :(得分:2)

awk救援!

$  awk '{for(i=4;i<=NF;i++) 
           if($i~/^A_/) 
             {t=$i;$i=$4;$4=t; break}}1' file | 
   column -t 

将给出

7  VAL  Z_SPLITIATO  A_DDDEW   84_SLA        841_SLON1  840_H1_S
4  VAL  Z_SPLS_H5_C  A_AFASD   HD_CLA        SPIT_OAI
4  VAL  Z_SPLS_H6_C  A_ADFEEE  HD_CLA        SPIT_OAI
4  VAL  Z_SPLS_H7_C  A_SSEEWR  HDS_H7OAISVC
7  VAL  Z_SPLITIATO  A_EEEA    SPL_N4_P1     84SLOSA    IOOWWW    840_H1_SL

我认为你的第3行不对,或者我也不了解交换规则。