2016-03-30 15 views
0

Dizgiyi linux içinde kısaltmaya çalışıyorum ve uzantıyı linux kullanarak sed kullanarak tutuyorum ama komutum" sed: -e ifadesiyle "hata veriyor 1., karakter 21: `s'15400_AP705_OUT_03112016_0513_001.DAT" Attığım dizedirsed: -e İfade # 1, char 21: bilinmeyen seçenek `s '

'' ve ben arıyorum çıkışına bilinmeyen seçenek kullanıyorum komut

olduğunu 15400_AP705.DAT

olduğunu

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

Selamlar, Srinath

cevap

1

sed komutunda çok fazla eğik çizgi var, kabuk değiştirmelerini önlemek için tek tırnak işaretleri (çift tırnak işareti değil) kullanmalısınız ve arka referanslar için \N kullanın (ör. sed için -r seçenek tüm platformlarda desteklenmez

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

Not olun: değil $1 ama \1). Mac OSX sistemlerinde, bunun yerine -E kullanın.

+0

Çok teşekkür ederim Guido ... Bu işe yaradı ... –