我正在尝试缩短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
答案 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
。