ファイル内の不正なパス名(pathname1
)を持つ特定の場所(/subdirectory1
)に数十のbashスクリプトがあります。私はどういうわけか、そのサブディレクトリ内のすべてのbashスクリプト*.sh
に対して、このパス名をpathname2
に置き換えたいと思います。複数のファイルに対して文字列置換を実行する方法は?
標準的な方法はありますか? Perlで
、私は単一のファイルfile1
で働いていたならば、私は実行します:
perl -pi -e 's/pathname1/pathname2/g' file1
どのようにして、すべてのファイル、*.sh
のためにこれを達成するのでしょうか?
これはperlである必要はありませんが、これが心に浮かぶ1つの方法です。他のシェルスクリプトや他の言語でこれを行う方法もあると私は思っています---私はこの質問を編集してオプションを絞り込むことを喜んで行います。
'file1'を' * .sh'に変更しますか?あなたの質問は本当に不明です。 –
確かに 'perl -pi -e 's/path1/path2/g' * .sh'はそのトリックを行います –
@WilliamPursellそれは機能しますか? ...私はばかだよ – ShanZhengYang