将数字替换为Sed,将数字列表(如1到1000)更改为可能重复的数字,但只有1而不是11或2,但不是22

  • 本文关键字:数字 列表 Sed 替换 1000 sed replace numbers
  • 更新时间 :
  • 英文 :


我想更改以下可以长达数千行的文本列表。

目标是将NET1更改为NET66,但仅在具有NET1的12条线路上,而不更改NET10、NET11、NET12、NET13或其中具有NET1###的任何线路。

我试着用

sed -i s/NET1/NET66/g list 

但它改变了所有线路中都有NET1(NET10改为NET660(谢谢你的帮助。

317NET1             1          M      A01X+004115Y+016850X0280Y         S0                                                                                                                            
017NET1             2                 A04X+004115Y+016850X0280Y         S0                                                                                                                            
017NET1                         D0160PA00X+004115Y+016850               S0                                                                                                                            
317NET1             3          M      A01X+004500Y+033650X0280Y         S0                                                                                                                            
017NET1             4                 A04X+004500Y+033650X0280Y         S0                                                                                                                            
017NET1                         D0160PA00X+004500Y+033650               S0                                                                                                                            
317NET2             5          M      A01X+004405Y+020600X0280Y         S0                                                                                                                            
017NET2             6                 A04X+004405Y+020600X0280Y         S0                                                                                                                            
017NET2                         D0160PA00X+004405Y+020600               S0                                                                                                                            
327NET2             7                 A01X+005010Y+020585X0560Y0220     S0                                                                                                                            
317NET3             8          M      A01X+004405Y+021100X0280Y         S0                                                                                                                            
017NET3             9                 A04X+004405Y+021100X0280Y         S0                                                                                                                            
017NET3                         D0160PA00X+004405Y+021100               S0                                                                                                                            
327NET3             10                A01X+005010Y+021085X0560Y0220     S0                                                                                                                            
317NET4             11         M      A01X+003408Y+026300X0500Y         S0                                                                                                                            
017NET4             12                A04X+003408Y+026300X0500Y         S0                                                                                                                            
017NET4                         D0340PA00X+003408Y+026300               S0             
317NET1             36                A01X+005615Y+024105X0280Y         S0                                                                                                                            
017NET1             37         M      A04X+005615Y+024105X0280Y         S0                                                                                                                            
017NET1                         D0160PA00X+005615Y+024105               S0                                                                                                                            
327NET10            38                A01X+005010Y+024085X0560Y0220     S0                                                                                                                            
317NET10            39                A01X+012305Y+019060X0280Y         S0                                                                                                                            
017NET10            40         M      A04X+012305Y+019060X0280Y         S0                                                                                                                            
017NET10                        D0160PA00X+012305Y+019060               S0                                                                                                                            
327NET10            41                A01X+012620Y+018218X0120Y0720     S0                                                                                                                            
317NET10            42                A01X+013105Y+033405X0280Y         S0                                                                                                                            
017NET10            43         M      A04X+013105Y+033405X0280Y         S0                                                                                                                            
017NET10                        D0160PA00X+013105Y+033405               S0                                                                                                                            
327NET10            44                A01X+012505Y+033400X0560Y0220     S0                                                                                                                            
317NET11            45                A01X+005600Y+024600X0280Y         S0                                                                                                                            
017NET11            46         M      A04X+005600Y+024600X0280Y         S0                                                                                                                            
017NET11                        D0160PA00X+005600Y+024600               S0                                                                                                                            
327NET11            47                A01X+005010Y+024585X0560Y0220     S0                                                                                                                            
317NET11            48                A01X+002208Y+025300X0500Y         S0                                                                                                                            
017NET11            49         M      A04X+002208Y+025300X0500Y         S0                                                                                                                            
017NET11                        D0340PA00X+002208Y+025300               S0                                                                                                                            
317NET11            50                A01X+013105Y+033890X0280Y         S0                                                                                                                            
017NET11            51         M      A04X+013105Y+033890X0280Y         S0                                                                                                                            
017NET11                        D0160PA00X+013105Y+033890               S0                                                                                                                            
327NET11            52                A01X+012505Y+033900X0560Y0220     S0                                                                                                                            
317NET11            53                A01X+004505Y+018850X0280Y         S0                                                                                                                            
017NET1             54         M      A04X+004505Y+018850X0280Y         S0                                                                                                                            
017NET1                         D0160PA00X+004505Y+018850               S0                                                                                                                            
317NET12            55         M      A01X+004365Y+025105X0280Y         S0                                                                                                                            
017NET12            56                A04X+004365Y+025105X0280Y         S0                                                                                                                            
017NET12                        D0160PA00X+004365Y+025105               S0                                                                                                                            
327NET1             57                A01X+005010Y+025085X0560Y0220     S0                                                                                                                            
317NET13            58         M      A01X+004365Y+025600X0280Y         S0                                                                                                                            
017NET13            59                A04X+004365Y+025600X0280Y         S0                   

使用awk:

awk '{sub(/NET1$/, "NET66", $1)}1' file > outfile

即删除第一个字段末尾的NET1,然后打印记录。

或使用sed:

sed -i 's/^([0-9]*)NET1([[:space:]])/1NET662/' file

^([0-9]*)NET1([[:space:]])只在行首的数字后面以及后面跟着空白字符时与NET1匹配。CCD_ 6和CCD_。

最新更新