例えば
find ./ -name file_name -exec grep -B 2 "earth" {} \; -print | grep "moon"
というコマンドを実施し、出力が
planetkind moon
だったとします。
このfile_nameファイルの一部にある
『 planetkind moon』
という箇所を
『 planetkind taiyo』
に変更したいのですが、
find ./ -name file_name -exec grep -B 2 "earth" {} \; -print | grep "moon" | xargs sed -i "s/moon/taiyo/"
とすると、ファイル中の全てのmoonがtaiyoになってしましまいます。
このgrepでの抽出箇所のみ置換して元ファイルを上書きする方法は有りますか?
以上、宜しくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> このgrepでの抽出箇所のみ置換して元ファイルを上書きする方法は有りますか?
ありそうですね。
grepで行番号を出力、sedで行番号も指定して置換など。
grep -B 2 "earth" | head -1
235-moon
grep -B 2 "earth" | head -1 | grep moon | sed s/-.*$//
235
sed -i 235s/moon/taiyo/
こんな感じの流れにできれば良いのでしょうけど。
質問に書かれているのはfindで一つのファイルからしか見つからない前提で良いのでしょうか。
違うとしたら、grepにファイル名も出力させて処理してやる必要がありそうに感じました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- UNIX・Linux bashでブランク(空白)を検索文字列として指定する方法 1 2022/04/13 22:29
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- UNIX・Linux AWSのEC2のZabbixユーザーでawscliコマンドが実行できない状態を解決する 1 2022/12/06 22:17
- UNIX・Linux ワイルドカードの使い方 4 2023/08/08 20:51
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- UNIX・Linux ブレース展開の使い方での質問です 2 2023/07/15 16:06
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Linux環境 grepで改行コード(CR...
-
sed で \\ を含む文字列に置換
-
grepでの抽出箇所のみ置換して...
-
bashなどのシェル変数の値に改...
-
grepで検索文字列が完全一致し...
-
awkを用いて、特定の文字を含む...
-
grepコマンドを使ったシェルに...
-
特定の文字列を含む行だけ削除...
-
Dirコマンドでフォルダ内ファイ...
-
TOPコマンドで表示するCPU使用...
-
エクセルの表にヘンな枠が・・・
-
スクリプトのエラー「unexpecte...
-
batである文字列内に特定の文字...
-
pingは正常なのにtracerouteで...
-
テキストファイルから最終行の抽出
-
bashでシングルクォート内の変...
-
ファイル名についている「-」と...
-
ラズパイで『’test.service’をs...
-
UNIX コマンドにおける # や円...
-
SCコマンドでアクセス拒否
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Linux環境 grepで改行コード(CR...
-
grepで日付指定してlogを取り出...
-
grepで検索文字列が完全一致し...
-
sed で \\ を含む文字列に置換
-
grepで全角文字の行を抽出
-
【シェルスクリプト】awkの結果...
-
bashでブランク(空白)を検索文...
-
awkのフィールド数制限について...
-
フィールドでgrepみたいなこと
-
grepでの抽出箇所のみ置換して...
-
awkコマンドについて
-
zshの文字列置換機能
-
bashなどのシェル変数の値に改...
-
grepで拡張子がxlsxのファイル...
-
テキスト処理を行うツール
-
テキストファイルの間引き削除...
-
awkを用いて、特定の文字を含む...
-
特定の文字列を含む行だけ削除...
-
行頭と行末に文字追加
-
sedの置換での「|」表記
おすすめ情報