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

sedは、テキストをフィルタリングおよび変換するためのコマンドラインストリームエディターです。

3
ファイル内の特定の文字列の後にテキストを挿入する方法は?
現在、私はecho "Hello World" >> file.txtファイルにテキストを追加するために使用していますが、特定の文字列の下にテキストを追加する必要があります。「[option]」と言いますsed。 例えば: 入力ファイル Some text Random [option] Some stuff 出力ファイル Some text Random [option] *inserted text* Some stuff

7
cat出力から最初と最後の行を読み取る方法は?
テキストファイルがあります。タスク-後のファイルから最初と最後の行を取得する $ cat file | grep -E "1|2|3|4" | commandtoprint $ cat file 1 2 3 4 5 cat出力なしでこれが必要です(1と5のみ)。 ~$ cat file | tee >(head -n 1) >(wc -l) 1 2 3 4 5 5 1 たぶんawkともっと短い解決策が存在する...
64 bash  shell  sed  awk  grep 

3
Mac OSX上のsedと他の「標準」sedの違いは?
sedコマンドに関するこの質問に対してこのサイトで提供されている回答を使用して、空白行を他の2行のコンテンツに置き換えるいくつかの問題があり、Mac OSのsedコマンド(10.6.7 ) 異なります。私はそれがそうだとは思いませんが、このサイトの他の人が違う考えをしたのではないかと思っていました。
61 osx  sed  standard 

11
sed置換のLHSおよびRHSで変数を使用するにはどうすればよいですか?
私はやってみたいです: cat update_via_sed.sh | sed 's/old_name/new_name/' > new_update_via_sed.sh 私のプログラムで。 しかし、変数を使用したい、例えば old_run='old_name_952' new_run='old_name_953' 私はそれらを使用しようとしましたが、置換は行われません(エラーなし)。私が試してみました: cat update_via_sed.sh | sed 's/old_run/new_run/' cat update_via_sed.sh | sed 's/$old_run/$new_run/' cat update_via_sed.sh | sed 's/${old_run}/${new_run}/'
61 sed 

9
Linuxでシェルスクリプトを使用してJSONを解析する方法は?
Linuxでいくつかのパラメーターを抽出する必要があるJSON出力があります。 これはJSON出力です: { "OwnerId": "121456789127", "ReservationId": "r-48465168", "Groups": [], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "RootDeviceType": "ebs", "State": { "Code": 16, "Name": "running" }, "EbsOptimized": false, "LaunchTime": "2014-03-19T09:16:56.000Z", "PrivateIpAddress": "10.250.171.248", "ProductCodes": [ { "ProductCodeId": "aacglxeowvn5hy8sznltowyqe", "ProductCodeType": "marketplace" } ], "VpcId": "vpc-86bab0e4", "StateTransitionReason": null, "InstanceId": "i-1234576", "ImageId": …

2
行番号に基づいて文字列を置き換える
多くのファイルの特定の文字列を置き換えたい状況があります 文字列AAAを別の文字列BBBで置き換えますが、AAAで始まる文字列またはAAAで終わる文字列がたくさんあります。34行目の1つだけを置き換え、他の文字列はそのままにしておきます。 行番号で指定することは可能ですか?すべてのファイルで、この文字列は正確に34行目にあります。
50 sed  awk 

13
ファイルの最後まで一致した後にすべての行を印刷する方法は?
入力file1は次のとおりです。 dog 123 4335 cat 13123 23424 deer 2131 213132 bear 2313 21313 一致するパターンをinからother file(dog 123 4335file2のように)指定します。 行のパターンに一致し、dog 123 4335一致行なしですべての行を印刷した後の出力は次のとおりです。 cat 13123 23424 deer 2131 213132 bear 2313 21313 行のアドレスなしでのみ使用する場合は、パターンを使用するだけです(たとえば1s 、行を照合して印刷する方法など)。


4
逆grepping
たとえば、非常に大きなテキストファイル(約10.000.000行)があるとします。grep最後からそれをする必要があり、結果をファイルに保存します。タスクを達成する最も効率的な方法は何ですか?

5
ファイルから最後の行を削除する
sed 特定の位置の行をすばやく削除するために使用します sed '1d' sed '5d' しかし、ファイルの最後の行を削除したいのに行数がわからない場合はどうすればよいでしょうか(使用wcしていくつかのトリックを取得できることはわかっています)。 現在、回避策を使用しheadてtail組み合わせて使用wcしています。ここで簡単なねじれはありますか?

9
不可解に失敗するタブの単純なsed置換
これは本当に簡単なはずですが、何らかの理由で機能していません。 sed -i.bak -E 's/\t/ /' file.txt タブ文字を置き換える代わりに、文字を置き換えますt。私は、引用で遊んで、私は考えることができ、この上のすべてのバリエーションを試してみましたなどIましGoogleで検索して見つけた誰もが、かなり類似した表現を使用して、彼らは彼らのために仕事に思えます。 これ-EはOS Xのものです。失敗はOS Xの奇妙な癖の結果かもしれないと思ったsedので、Rubyでも試してみて(なしで-i)、同じ結果を得ました: ruby -pe '$_.gsub!(/\t/," ")' < file.txt > file.new OS XとiTermでBash 3.2.51を使用していますが、これらのどれがひどく関連するかはわかりません。奇妙な環境変数は設定していませんが、関連があると思われるものは投稿できます。 何が間違っているのでしょうか? 更新:Rubyバージョンを試してみたときに、Gillesがそれが機能することを指摘しているため、他の間違いやタイプミスを犯したに違いありません(そして、私は彼に間違った方向を向かわせたことがありません!)何が起こったのかはわかりませんが、それは間違いだったに違いありません。


9
ファイル名の文字列を置き換えて複数のファイルの名前を変更する方法は?この文字列には「#」が含まれます
https://serverfault.com/questions/70939/how-to-replace-a-text-string-in-multiple-files-in-linux https://serverfault.com/questions/228733/how-to-rename-multiple-files-by-replacing-word-in-file-name https://serverfault.com/questions/212153/replace-string-in-files-with-certain-file-extension https://serverfault.com/questions/33158/searching-a-number-of-files-for-a-string-in-linux これらの言及された記事はすべて私の質問に答えました。しかし、それらのどれも私のために機能しません。置換しようとしている文字列に#が含まれているためと思われます。これに対処する特別な方法はありますか? サイトの移行中にéが#U00a9に置き換えられたイメージファイルがあります。これらは次のようになります。 Lucky-#U00a9NBC-80x60.jpg Lucky-#U00a9NBC-125x125.jpg Lucky-#U00a9NBC-150x150.jpg Lucky-#U00a9NBC-250x250.jpg Lucky-#U00a9NBC-282x232.jpg Lucky-#U00a9NBC-300x150.jpg Lucky-#U00a9NBC-300x200.jpg Lucky-#U00a9NBC-300x250.jpg Lucky-#U00a9NBC-360x240.jpg Lucky-#U00a9NBC-400x250.jpg Lucky-#U00a9NBC-430x270.jpg Lucky-#U00a9NBC-480x240.jpg Lucky-#U00a9NBC-600x240.jpg Lucky-#U00a9NBC-600x250.jpg Lucky-#U00a9NBC.jpg そして、私はそれを次のようなものに変更したい: Lucky-safeNBC-80x60.jpg Lucky-safeNBC-125x125.jpg Lucky-safeNBC-150x150.jpg Lucky-safeNBC-250x250.jpg Lucky-safeNBC-282x232.jpg Lucky-safeNBC-300x150.jpg Lucky-safeNBC-300x200.jpg Lucky-safeNBC-300x250.jpg Lucky-safeNBC-360x240.jpg Lucky-safeNBC-400x250.jpg Lucky-safeNBC-430x270.jpg Lucky-safeNBC-480x240.jpg Lucky-safeNBC-600x240.jpg Lucky-safeNBC-600x250.jpg Lucky-safeNBC.jpg 更新: これらの例はすべて「LU00a9ucky」で始まりますが、ここには異なる名前の多くの画像があります。文字列の「#U00a9」の部分をターゲットとして「safe」に置き換えています。
42 sed  rename  mv 

7
sedは改行文字を置き換えることができますか?
sedおよび改行文字に問題はありますか? 次の内容のファイルtest.txtがあります aaaaa bbbbb ccccc ddddd 以下は機能しません。 sed -r -i 's/\n/,/g' test.txt 私trはこれに使用できることを知っていますが、私の質問はなぜsedでは不可能なのかということです。 これがファイルを1行ずつ処理する副作用である場合、これが発生する理由に興味があります。grep新しい行を削除すると思います。sedは同じことをしますか?
42 sed 


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