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

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



3
差分、正しいファイルの変更された行のみを表示
私はファイルを持っていますa、bそしてb、それがクローンされたので、それの変更された行を出力したいと思いますa。変更された行のみ、周囲のコンテキスト、差分オフセットマークはありません。 シェルスクリプトを使用してこれを行うにはどうすればよいですか?(Python / Perl / PHP /なし) Sedとawkは許容可能なソリューションです。 今のところ、--suppress-common-linesでdiff -yを行い、正規表現の後方参照を使用してsedを実行し、空白の後の正しい部分を取得します。より良い方法があるはずです? perl(禁止)を使用して、次のようなことをします。 diff -y --suppress-common-lines -W $COLUMNS Eclipse_Preferences_Export_*.epf | perl -pe 's/.*\t|\t(.*)$/\1/g'
24 shell-script  sed  awk  diff 

5
\ nをsedの改行で置き換えてください
GNU sed、POSIX sed、およびBSD sedの無数のオプションと混同しています。\nこれら3つのsedタイプを使用して、リテラルを改行文字に置き換えるにはどうすればよいですか?
23 sed  newlines 

5
「sed」インプレース変更を報告する方法
sedインプレースで文字列を置き換えるために使用する場合、(古いファイルと新しいファイルの差分に依存せずに)変更を報告する方法はありますか? たとえば、コマンドラインをどのように変更できますか find . -type f | xargs sed -i 's/abc/def/g' その場で行われた変更を見ることができますか?

7
2つのタグ間のテキスト
これら2つのタグの間にあるものはすべて<tr> </tr>、HTMLドキュメントから取得したいです。現在、HTMLパーサーを保証する特定のHTML要件はありません。私は単に一致<tr>し</tr>、その間にすべてを取得するものが必要であり、複数trのものが存在する可能性があります。私はawkを試しましたが、それはうまくいきますが、何らかの理由で抽出された各行の複製を与えることになります。 awk ' /<TR/{p=1; s=$0} p && /<\/TR>/{print $0 FS s; s=""; p=0} p' htmlfile> newfile これについてどうやって行くのですか?

5
sedまたはawkでCSVファイルを操作する方法は?
sedまたはを使用してCSVファイルに次のことを行うにはどうすればよいawkですか? 列を削除する 列を複製する 列を移動する 200行を超える大きなテーブルがありますが、にあまり詳しくありませんsed。
23 sed  awk  csv 

4
インプレース引数のための複数の表現を使用したsed
を使用してファイル内の複数の単語を置き換えようとしています sed -i #expression1 #expression2 ファイル Something 123 item1 Something 456 item2 Something 768 item3 Something 353 item4 出力(望ましい) anything 123 stuff1 anything 456 stuff2 anything 768 stuff3 anything 353 stuff4 トライアウト sed -iforを2回使用すると、次の出力を取得できます。 sed -i 's/Some/any/g' file sed -i 's/item/stuff/g' file これを単一のインプレースコマンドとして作成する方法はありますか sed -i 's/Some/any/g' -i 's/item/stuff/g' file 上記のコードを試してみたときs/item/stuff/g、ファイルとして取得し、作業を試みます。

7
コンマ区切りファイルでのみ引用符の間のコンマを削除します
入力ファイルがコンマ(,)で区切られています。二重引用符で囲まれたいくつかのフィールドには、カンマが含まれています。ここにサンプル行があります 123,"ABC, DEV 23",345,534.202,NAME 二重引用符と二重引用符内で発生するすべてのコンマを削除する必要があります。したがって、上記の行は以下に示すように解析されるはずです 123,ABC DEV 23,345,534.202,NAME を使用して次のことを試みましたsedが、期待した結果が得られませんでした。 sed -e 's/\(".*\),\(".*\)/\1 \2/g' sed、awkまたはその他のUNIXユーティリティを使用した簡単なトリックはありますか?
23 text-processing  sed  awk  csv 

3
sedを使用して文字列をファイルの内容に置き換えます
2つの異なるファイルがあります。 File1 /home/user1/ /home/user2/bin /home/user1/a/b/c File2 <TEXT1> <TEXT2> を使用して<TEXT1>、File2をFile1のコンテンツに置き換えたいと思いますsed。このコマンドを試しましたが、適切な出力が得られませんでした。 cat File2|sed "s/<TEXT1>/$(cat File1|sed 's/\//\\\//g'|sed 's/$/\\n/g'|tr -d "\n")/g" 他のツールを使用してこの問題を解決することもできます。
23 sed  replace 

8
sedを使用して改行をスペースに変換する
$stringいくつかの改行を含むテキストを保持するシェル変数があるとします。たとえば: string="this is a test" この文字列を、new_stringすべての改行がスペースに変換される新しい文字列に変換したいと思います。 new_string="this is a test" 私は試した: print $string | sed 's/\n/ /g' しかし、それはうまくいきませんでした またperl -0777 's/\n/ /g'、コマンドを使用してこれを行う方法があるのだろうかと思ってい trますか?
22 shell  sed 

4
sed-文字列をファイルの内容に置き換えます
2つのファイルがあります:file1とfile2。 file1 次の内容があります。 --- host: "localhost" port: 3000 reporter_type: "zookeeper" zk_hosts: - "localhost:2181" file2IPアドレスが含まれています(1.1.1.1) 私がしたいのは、に置き換えlocalhostて1.1.1.1、最終結果が次のようになることです: --- host: "1.1.1.1" port: 3000 reporter_type: "zookeeper" zk_hosts: - "1.1.1.1:2181" 私が試してみました: sed -i -e "/localhost/r file2" -e "/localhost/d" file1 sed '/localhost/r file2' file1 |sed '/localhost/d' sed -e '/localhost/r file2' -e "s///" file1 ただし、行全体を置き換えるか、変更する必要があるIPの後に行にIPを移動します。


4
特定のパターンまたはファイル内の文字列の後、各行の残りを削除する方法は?
テキストファイルにURLのリストがあるとします。 google.com/funny unix.stackexchange.com/questions isuckatunix.com/ireallydo 「.com」の後にあるすべてのものを削除したい。 予想された結果: google.com unix.stackexchange.com isuckatunix.com 私は試した sed 's/.com*//' file.txt しかし、それも削除し.comました。

4
sed -iがシンボリックリンクを破壊しないようにするにはどうすればよいですか?
sed -iシンボリックリンクで実行すると、なぜそのリンクが破壊され、リンク先ファイルに置き換えられるのですか?これを避ける方法は? 例えば。 $ ls -l pet* -rw-rw-r-- 1 madneon madneon 4 mar 23 16:46 pet lrwxrwxrwx 1 madneon madneon 6 mar 23 16:48 pet_link -> pet $ sed -i 's/cat/dog/' pet_link $ ls -l pet* -rw-rw-r-- 1 madneon madneon 4 mar 23 16:48 pet -rw-rw-r-- 1 madneon madneon 4 …
21 sed  symlink 

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