タグ付けされた質問 「sed」

Sed(Stream EDitor)は、POSIX環境用のコマンドラインエディターです。sedは、編集スクリプトに従って1つ以上のファイルを処理し、結果を標準出力に書き込みます。Bell Labsで作成され、70年代半ばから存在しています。


5
Perl、Python、AWK、sedの違いは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 それらの間の主な違いは何ですか知りたいですか?各言語の能力(使用する方がよい場合)。 編集:それは「対」ではありません。トピックのように、単なる情報。

8
sedを使用して最初の一致の後に行を挿入する
どういうわけか、これに対する簡単な答えを見つけることができないようで、私は現在、少し時間の危機に瀕しています。sedコマンドを使用して特定の文字列に一致する最初の行の後にテキストの選択行を挿入する方法を教えてください。私が持っています ... CLIENTSCRIPT="foo" CLIENTFILE="bar" そして、CLIENTSCRIPT=結果の行の後に行を挿入したい... CLIENTSCRIPT="foo" CLIENTSCRIPT2="hello" CLIENTFILE="bar"
245 shell  sed 

7
ディレクトリとサブディレクトリでsedを見つけて置き換えます
私はこのコマンドを実行して、サイトのルートにあるすべてのファイルで「apple」のすべての出現箇所を「orange」に置き換えます。 find ./ -exec sed -i 's/apple/orange/g' {} \; しかし、それはサブディレクトリを通過しません。 このコマンドの何が問題になっていますか? ここにいくつかの出力行がありますfind ./: ./index.php ./header.php ./fpd ./fpd/font ./fpd/font/desktop.ini ./fpd/font/courier.php ./fpd/font/symbol.php

13
Mac(BSD)とLinuxの両方で機能するsedインプレースフラグ
sedLinuxとMacの両方で機能するバックアップなしのtodoインプレース編集の呼び出しはありますか?sedOS Xに同梱されているBSD はを必要sed -i '' …としているようですが、GNU sedLinuxディストリビューションは通常、引用符を(バックアップ拡張子ではsed -i …なく)空の入力ファイル名として解釈し、代わりに必要です。 両方のフレーバーで機能するコマンドライン構文はありますか?したがって、両方のシステムで同じスクリプトを使用できますか?
237 linux  macos  sed  bsd 


8
複数のパターンを一度にsedで置き換える方法は?
「abbc」という文字列があり、置き換えたいとします。 ab-> bc bc-> ab 2つの置換を試みた場合、結果は希望どおりではありません。 echo 'abbc' | sed 's/ab/bc/g;s/bc/ab/g' abab それでは、以下のように置換するためにどのsedコマンドを使用できますか? echo abbc | sed SED_COMMAND bcab 編集:実際にはテキストは2つ以上のパターンを持つ可能性があり、どれだけの置換が必要かわかりません。これsedはストリームエディタであり、その置き換えは貪欲であるという回答があったので、そのためにスクリプト言語を使用する必要があると思います。
231 replace  syntax  sed 

13
シェルスクリプト-変数から最初と最後の引用符( ")を削除します
以下は、より大きなスクリプトからのシェルスクリプトのスニペットです。変数によって保持されている文字列から引用符を削除します。私はsedを使用してそれをやっていますが、それは効率的ですか?そうでない場合、効率的な方法は何ですか? #!/bin/sh opt="\"html\\test\\\"" temp=`echo $opt | sed 's/.\(.*\)/\1/' | sed 's/\(.*\)./\1/'` echo $temp
225 string  bash  shell  unix  sed 

11
一致した行の後の次の行のみを表示するにはどうすればよいですか?
grep -A1 'blah' logfile 「blah」が含まれているすべての行に対するこのコマンドのおかげで、「blah」を含む行の出力と、ログファイルの次の行が表示されます。それは単純なものかもしれませんが、「何とか」がある行を省略して、出力に次の行のみを表示する方法を見つけることができません。
218 awk  sed  grep 

23
sedを使用してファイル内の最初の出現のみを置き換える方法は?
既存の#includeの前に追加のincludeディレクティブを使用して、多数のC ++ソースファイルを更新したいと思います。この種のタスクでは、通常、sedで小さなbashスクリプトを使用してファイルを再書き込みします。 sedすべての出現を置き換えるのではなく、ファイル内の文字列の最初の出現のみを置き換えるにはどうすればよいですか? 私が使うなら sed s/#include/#include "newfile.h"\n#include/ すべての#includeを置き換えます。 同じことを達成するための代替案も歓迎します。

15
ファイルの先頭にテキストを挿入する方法は?
これまでのところ、ファイルの先頭に行を追加する方法を見つけることができましたが、それはまさに私が望んでいることではありません。例で示します ファイル内容 some text at the beginning 結果 <added text> some text at the beginning それは似ていますが、それで新しい行を作成したくありません... sedできればこれでやりたいです。
213 linux  bash  sed 

13
STDOUTのn番目の行を取得するコマンド
STDOUTのn行目を取得できるbashコマンドはありますか? つまり、これを取るようなもの $ ls -l -rw-r--r--@ 1 root wheel my.txt -rw-r--r--@ 1 root wheel files.txt -rw-r--r--@ 1 root wheel here.txt そして、次のようなことをする $ ls -l | magic-command 2 -rw-r--r--@ 1 root wheel files.txt これは、再利用することを意図したスクリプトを作成する場合は悪い習慣になると思いますが、シェルを日常的に使用する場合は、そのような方法でSTDOUTをフィルタリングできると便利です。 また、これは書くのが簡単なコマンド(バッファーSTDOUT、特定の行を返す)であることも理解していますが、スクリプトを配置しなくても使用できる標準のシェルコマンドがあるかどうかを知りたいです。
210 bash  shell  sed  stdout 

10
sedでの環境変数の置換
これらのコマンドをスクリプトから実行すると、次のようになります。 #my.sh PWD=bla sed 's/xxx/'$PWD'/' ... $ ./my.sh xxx bla それは結構です。 しかし、実行すると: #my.sh sed 's/xxx/'$PWD'/' ... $ ./my.sh $ sed: -e expression #1, char 8: Unknown option to `s' 私はチュートリアルで、シェルから環境変数を置き換えるには停止する必要があることを読み、$varname直接置き換えられないようにその部分を「引用」します。これは私がやったことであり、変数が直前に定義されている場合にのみ機能します。 $varシェルで定義されているsedを環境変数として認識させるにはどうすればよいですか?
202 linux  unix  shell  sed 

9
複数のファイルを変更する
次のコマンドは、2つのファイルの内容を正しく変更しています。 sed -i 's/abc/xyz/g' xaa1 xab1 しかし、私がする必要があるのは、そのようなファイルを動的に変更することであり、ファイル名がわかりません。私は始まる、現在のディレクトリからすべてのファイルを読み込みますコマンド書きたいxa*とsed、ファイルの内容を変更する必要があります。
194 sed 

4
コマンドコードが無効です。ピリオドがエスケープされていますが、sedを使用しています
現在のクライアントでCVSの使用を強制され、リモートリポジトリのアドレスが変更された。ローカルコードでリモートアドレスを変更するために見つけることができる唯一の方法は、再帰的な検索と置換です。 ただし、sedコマンドを使用すると、動作するはずです。 find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \; すべてのファイルでエラーが発生します。 sed: 1: ".//file/path ...": invalid command code . 私はsedの一致/置換のピリオドを回避しようとしましたが、それは何も解決しません。
187 bash  macos  sed 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.