我在Unix框中的一个文件夹下有一个文件。我的文件将如下所示,其中任何一行都以"LIN"、"RFF"、"NAD"开头——这些行的字母和数字将分别屏蔽为"X"one_answers"0",不包括"LIN","RFF’"one_answers"NAD’"。
到目前为止,我已经尝试过使用下面的命令,就像每个字母表一个命令一样,我想制作一个脚本,在一次运行中屏蔽这些行。
$ sed '/^LIN/s/A/X/'
示例文件:-
#Header#
line1:string::strings:
line2:asdasd:asd:aD:
line3:asda:asda
....
....
LIN:asdas:SDFGH:1223:asf
....
NAD:asdas123:23:
....
....
RFF:asda:asd123:asd
....
Nlines:asda:asdad:asdas
#Footer#
您可以使用分号将两个sed命令组合为一个命令。在以LIN、NAD或RFF开头的行中,搜索字母字符并替换为X,但从第4个字符开始,保留前导字符。然后,搜索数字并替换为0。
$ sed '/^(LIN|NAD|RFF):/s/[[:alpha:]]/X/4g;s/[[:digit:]]/0/g' file.txt
#Header#
line0:string::strings:
line0:asdasd:asd:aD:
line0:asda:asda
....
....
LIN:XXXXX:XXXXX:0000:XXX
....
NAD:XXXXX000:00:
....
....
RFF:XXXX:XXX000:XXX
....
Nlines:asda:asdad:asdas
#Footer#
$