2

私はこのように見える1000以上のファイルを持っています。

kkk1a2o_A.txt
kkk1a73_A.txt
kkk2chj_A.txt

各ファイルの名前を次のように変更したいのですが

1a2o.txt
1a73.txt
2chj.txt

どうすればawkまたはsedでこれを行うことができますか?

4

3 に答える 3

1

sedawkファイルの名前ではなく、ファイルの内容を操作します。mvループで使用できます:

for file in kkk*.txt ; do
    new=${file#kkk}
    mv "${file}" "${new%_A.txt}.txt"
done
于 2012-09-17T19:25:16.243 に答える
0

sedorは必要ありません。パラメータ展開awkだけです:bash

for f in *.txt
do
    dest=${f#kkk}
    dest=${dest%_A.txt}.txt
    mv "$f" "$dest"
done
于 2012-09-17T19:29:12.850 に答える
0

これはうまくいくかもしれません(GNU sed):

 printf "%s\n" * | sed 'h;s/kkk\([^_]*\)_A/\1/;H;g;s/^\(.*\)\n/mv -v \1 /e'
于 2012-09-17T20:14:07.607 に答える