[解決済み] コマンドライン:grepでマッチしたすべてのファイル名の検索と置換
2023-07-18 22:26:10
質問
grepでマッチしたすべてのファイルの文字列を検索し、置換しようとしています。
grep -n 'foo' *
と入力すると、次のような出力が得られます。
[filename]:[line number]:[text]
grep が返す各ファイルについて、ファイルを修正するために
foo
を
bar
.
どのように解決するのですか?
grepでマッチしたすべてのファイルの文字列を検索して置き換えるということですか?
perl -p -i -e 's/oldstring/newstring/g' `grep -ril searchpattern *`
編集
これはかなり人気のある質問のようなので、私は更新することを考えました。
今日、私はほとんど
ack-grep
を使うことが多いです。ということで、上のコマンドはこうなります。
perl -p -i -e 's/old/new/g' `ack -l searchpattern`
ファイル名の空白を処理するために、実行することができます。
ack --print0 -l searchpattern | xargs -0 perl -p -i -e 's/old/new/g'
を使えば、もっといろいろなことができます。
ack-grep
. 例えば、HTMLファイルだけに検索を限定したいとします。
ack --print0 --html -l searchpattern | xargs -0 perl -p -i -e 's/old/new/g'
そして、ホワイトスペースが問題でなければ、さらに短くなります。
perl -p -i -e 's/old/new/g' `ack -l --html searchpattern`
perl -p -i -e 's/old/new/g' `ack -f --html` # will match all html files
関連
-
Vmware 16仮想マシンを開けない場合、ファイルをローカルにコピーする方法は?
-
ディープインシステムの画面解像度を設定する方法は?ディープインシステムの解像度を設定する方法
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] Gitの履歴からコミットしたコードをgrep(検索)する方法
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
-
[解決済み] grep --exclude/--include構文を使って特定のファイルをgrepしないようにする
-
[解決済み] grepで行番号を取得する
-
[解決済み】パス/ファイル:行を表示しないgrep
-
[解決済み] grepの出力にファイル名と行番号を表示する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ゼロからLinuxのisoイメージを作る方法(グラフィックチュートリアル)
-
Linuxでファイルパーミッションを与えるには?Linuxでファイルに実行可能なパーミッションを追加するためのヒント
-
virtualboxが仮想マシンを開けない場合は?linuxがvirtualboxにアクセスできない時の解決策
-
rsyncとinotfiyの組み合わせでリアルタイムバックアップ問題を実現
-
Linux MintのデスクトップでNoteをイタリックにすることは可能ですか?
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
GCCのバージョンによる浮動小数点演算の例外発生
-
[解決済み] ディレクトリInodeと通常ファイルInodeの比較
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] 特定のファイル/フォルダを除外してディレクトリをtarするシェルコマンド