名前を変更するファイルが複数あります。
leng-1494-001
leng-1464-002
leng-2414-004
leng-7894-005
leng-1323-006
名前を変更したい
ferr-1494-001
ferr-1464-002
ferr-2414-004
ferr-7894-005
ferr-1323-006
ferrとlengを処理する方法を知っていますが、sedを使用して6〜10文字(1464,7894)を空の行やaaaa bbbb ccccなどの文字列に置き換える方法は? AwkまたはPerlソリューションも歓迎します。ありがとう
答え1
sedを使用してください:
sed -r 's/(.*[a-zA-Z]{4}\-)([0-9]{4})/\1aaaa/g'
答え2
POSIX的に:
$ sed -e 's/-[^-]*-/-/' file
leng-001
leng-002
leng-004
leng-005
leng-006
答え3
Perl部分文字列関数を使用して解決策を見つけました。
echo leng-1323-006|perl -lpe 'substr($_, 5, 5) = "";'
正しく返す
leng-006
次のような場所5から5つの無効な文字を削除しました。