sed:-e表达式#1,char 21:`s'的未知选项

时间:2016-03-30 19:28:54

标签: linux sed

我正在尝试缩短linux中的字符串并使用sed保留linux中的扩展名,但是我的命令错误地出现了“sed:-e expression#1,char 21:`s'的未知选项”

我带的字符串是“15400_AP705_OUT_03112016_0513_001.DAT”,我要找的输出是15400_AP705.DAT

我使用的命令是

echo 15400_AP705_OUT_03112016_0513_001.DAT | sed -r "s//(.{11}).*(\..*)$/$1$2/"

此致 Srinath

1 个答案:

答案 0 :(得分:1)

sed命令中有一个斜杠太多,你应该使用单引号(不是双引号)来避免shell替换,并使用\N进行反向引用(即不{{1}但是$1):

\1

请注意,并非所有平台都支持echo 15400_AP705_OUT_03112016_0513_001.DAT | sed -r 's/(.{11}).*(\..*)$/\1\2/' 的{​​{1}}选项。在Mac OSX系统上,请改用-r