删除特定字符

时间:2017-05-30 08:53:07

标签: bash shell awk

如何使用awk或任何命令删除' - '和' - '之前的字符?

XR-234|YYY|YYY|IR-567
YYYY|GT-890|YYYY|YYYY

输出:

234|YYY|YYY|567
YYYY|890|YYYY|YYYY

7 个答案:

答案 0 :(得分:2)

awk 'BEGIN{FS=OFS="|"}{for(i=1;i<=NF;i++) gsub(/^[^-]+-/,"",$i)}1' inputfile

FSOFS设置为&#34; |&#34;在BEGIN区块内。然后对于每个字段,使用gsub函数进行替换和打印。

答案 1 :(得分:0)

使用sed

时更简单
sed 's/[^|]\+-//g' inputfile

答案 2 :(得分:0)

尝试awk:

awk '{gsub(/[a-zA-Z]+-/,"")} 1'   Input_file

全局将字母表替换为破折号( - )为NULL,然后在此处提及Input_file。

答案 3 :(得分:0)

使用sed

sed 's/[^|]*-//g' fil

答案 4 :(得分:0)

删除两个字符并破折号。

awk '{gsub(/..-/,"")}1' file

234|YYY|YYY|567
YYYY|890|YYYY|YYYY

答案 5 :(得分:0)

$ awk '{gsub(/[^|-]+-/,"")}1' file
234|YYY|YYY|567
YYYY|890|YYYY|YYYY

答案 6 :(得分:0)

使用Perl脚本语言,

#!/use/bin/Perl
use warnings;
use strict;
while(<>){
     s/(\w)*-//;
     print;
}

执行以下脚本,     perl script.pl your_test_file

这会得到您想要的输出

234|YYY|YYY|567
YYYY|890|YYYY|YYYY
相关问题