2014-03-13 23 views
0

使用SED/AWK命令来删除一个模式之间的字符串如何从一个文件中下面提到的字符串中删除信f如何在Linux

a;b;c;d;e;f;g;h;i;j;k;l;m 

这需要通过做只使用分隔符;使用sed或awk。

输出将是:

a;b;c;d;e;g;h;i;j;k;l;m 
+1

期望的结果是什么? – 2014-03-13 14:30:06

+0

不会更容易吗? – Brian

+4

's/f //' - 或者我错过了什么? – devnull

回答

1

这可能会为你工作(GNU SED):

sed 's/[^;];//6' file 
0
$ echo 'a;b;c;d;e;f;g;h;i;j;k;l;m' | sed 's/;*f;*/;/' 
a;b;c;d;e;g;h;i;j;k;l;m 
0

更容易使用比sed的Perl的馅饼(除非战略经济对话在过去20年中增加了一个就地编辑标记)。

perl -p -i -e 's/;f;/;/' fileName.txt 
+0

您怎么知道'e' 'f'之前? – 2014-03-13 14:36:20

+0

@LutzHorn - 作者不清楚这是一般情况还是特定情况。 – marathon

0
sed 's/f;//' YourFile 

要小心如果f是样品因可能的特殊字符在一个通用的模式只有一个样品图案