
例えば
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...
-
grepで全角文字の行を抽出
-
テキストファイルの間引き削除...
-
コマンドの出力結果をn行おきに...
-
sed で \\ を含む文字列に置換
-
Linux(BASH)上での数値定数
-
特定の文字列を含む行だけ削除...
-
awkでファイル名の取り扱い
-
ファイルをある文字列で分割し...
-
Dirコマンドでフォルダ内ファイ...
-
スクリプトのエラー「unexpecte...
-
ファイル名についている「-」と...
-
pingは正常なのにtracerouteで...
-
TOPコマンドで表示するCPU使用...
-
batである文字列内に特定の文字...
-
ラズパイで『’test.service’をs...
-
ファイル名の -(ハイフン)を _(...
-
SONYの音楽ソフト「x-アプリ」...
-
テキストファイルから最終行の抽出
-
バッチファイル内の各コマンド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Linux環境 grepで改行コード(CR...
-
grepで全角文字の行を抽出
-
sed で \\ を含む文字列に置換
-
grepで日付指定してlogを取り出...
-
grepで検索文字列が完全一致し...
-
awkを用いて、特定の文字を含む...
-
LINUXで半角の英数字以外の文字...
-
【シェルスクリプト】awkの結果...
-
sedによる置換 置換ができない。
-
特定の文字列を含む行だけ削除...
-
grepでの抽出箇所のみ置換して...
-
zshの文字列置換機能
-
フィールドでgrepみたいなこと
-
コマンドの出力結果をn行おきに...
-
grep,cutで取得した文字の前後...
-
awkのフィールド数制限について...
-
grepで変数が使えない
-
sedコマンドで範囲指定しての部...
-
awkでファイル名の取り扱い
-
sedで特定行を抽出したいです
おすすめ情報