• ベストアンサー

bashシェルについて

bashシェルを利用しまして aiueoディレクトリ内にあります、 aaa bbb ccc abc acb bac bca cba cab というファイル内に記載されています、 123456789 という文字列を 987654321 に変更したいと考えます。 どのようなスクリプトを構成すれば、 上記の内容がクリアーできますでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

こんばんは。 perlを使うと、テキストファイルの中の文字列を直接変更できます。 perl -pi -e 's/123456789/987654321/g' data.txt というわけで、findで検索したファイル名を、xargs 経由で Perlに渡して 処理することができます。 find aiueo/ -type f | xargs perl -pi -e 's/123456789/987654321/' 参考にしてください。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

どこができないんだろ.... 1.aiueo/aaa というファイルにある 123456789 という文字列を 987654321 に変換することはできますか? 2.1のように変換して, 再び aiueo/aaa というファイルに戻すことはできますか? 3.2を複数のファイルに対して繰り返し適用することはできますか? 1ができないのなら, sed について調べてください. 2ができないときにはリダイレクトとか && を調べると吉かも. 3については for とかを調べてみましょう.

関連するQ&A