2016-05-12 3 views
-1

Linuxシェルスクリプトを使用して名前を変更する必要があるファイルがいくつかあります。私は、次のファイル名の2番目の文字までのテキスト「ID」を挿入する必要があります。Linuxシェルスクリプトを使用してfilenameにテキストを挿入する

HP0001.txt 
    HP0002.txt 
    HP0003.txt 

それだけで「ファイルのカップル」だ場合、スクリプトが

HPID0001.txt 
    HPID0002.txt 
    HPID0003.txt 
+1

それだけで「ファイルのカップル」なら...それはそれらを手動で名前を変更するために、おそらく最も簡単です。 – paulsm4

+1

何を試しましたか?どちらのシェルを使用していますか?あなたはそれを何と考えていますか?既存の文字は常に「HP」ですか?追加の文字は常に 'ID'ですか?常に4桁ですか?拡張子は常に '.txt'ですか?スクリプトをどのように呼び出す予定ですか?ファイル名はスクリプトの引数になりますか、または引数としてディレクトリ名を指定しますか? (疑わしい場合には、ファイル名が良い選択です)あなたのマシン上で 'rename'や' prename'コマンドが使えますか? –

+0

これは疑いの余地がありますhttp://stackoverflow.com/questions/37176199/insert-text-into-a-filename-in-unix ...あなたは同じコースにいますか?あなたの教授は外の助けを受けることを承認しますか? – tripleee

答えて

1

に名前を変更することができるはずですおそらく、手動で名前を変更するのが最も簡単です。

そうでない場合は、ここであなたが適応できる些細なスクリプトです:

for f in HP*.txt; do 
    f2=`echo $f|sed -e 's/HP/HPID/'` 
    echo mv $f $f2 
done 

出力例:

ls HP* 
HP001.txt HP002.txt HP003.txt 

bash ./tmp.sh 
mv HP001.txt HPID001.txt 
mv HP002.txt HPID002.txt 
mv HP003.txt HPID003.txt 
0

ファイルのスクリプトを実行する前に、ディレクトリ内:

HP0001.txt 
HP0002.txt 
HP0003.txt 
main 

メインスクリプトの内容

スクリプトの実行後にの

ディレクトリ内容:

ls -1 
HPID0001.txt 
HPID0002.txt 
HPID0003.txt 
main 
関連する問題