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

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

5
標準のコマンドラインツールを使用して、コマンド出力のすべてのIPアドレスを解決する
IPアドレスの束を含むいくつかのログファイルがあります。IPアドレスを照合して解決するプログラムを介してデータをパイプできるようになりたいです。 IE cat / var / log / somelogfile | ホスト それは次のような線を回します 10.13.13.10によってアクセスされる10:45 に 10:45 myhostname.intranetからアクセス 私の考えでは、sedとhostの組み合わせでこれを行う方法があるかもしれませんが、どうすればよいかわかりません。それを行う簡単なスクリプトを作成できることはわかっていますが、できれば組み込みのツールを使用できるようにしたいと思っています。助言がありますか?

6
タブ区切りデータをコンマ区切りデータに変換するにはどうすればよいですか?
アマゾンのec2コマンドラインツールを介してec2スナップショットのリストをリクエストしています。 ec2-describe-snapshots -H --hide-tags > snapshots.csv データは次のようになります。 SnapshotId VolumeId StartTime OwnerId VolumeSize Description snap-00b66464 vol-b99a38d0 2012-01-05 5098939 160 my backup リダイレクトする前にデータを傍受snapshots.csvし、次のことを行うにはどうすればよいですか。 「タブ」をコンマに置き換えます 引用符で値をカプセル化する 値がすべて数値の場合は、プレフィックスとしてを付けて、=Excelでテキストとして扱われるようにします。たとえばOwnerId、"=5098939"にする必要があります(これはインラインで実行できず、代わりにスクリプトファイルまたは関数が必要な場合は必要ありません)。 望ましい出力: "SnapshotId","VolumeId","StartTime","OwnerId","VolumeSize","Description" "snap-00b66464","vol-b99a38d0","2012-01-05","=5098939","=160","my backup"

3
1つの表現を使用して複数の針を1つの単語で検索および置換する方法
テキストファイルがあるとします。 foo fnord bar bizz foo poit そして今、「foo」と「bar」の両方を「narf」に置き換えたいと思います。 私は使用できることを知っています: sed -e 's/foo/narf/g' -e 's/bar/narf/g' fileName それでも、1つの式で両方の針に一致するように正規表現に指示するOR演算子を使用したいと思います。 いくつかのマニュアルを読んで、パイプは自分のニーズに合うはずだと思いますが、試しました sed -e 's/foo|bar/narf/g' -i fileName そしてそれは機能せず、エラーをスローすることすらありません。 ここで何が悪いのですか?

2
Bashカラー出力が失敗する
セッドまたはエコーの問題ですか?私は何を間違っていますか? $> cat ~/bin/color_test.sh #!/bin/bash ColorOff='\e[0m' # Text Reset BWhite='\e[1;37m' # Bold White string="test TEST test" echo -e "$string" | sed -e "s/TEST/${BWhite}TEST${ColorOff}/g" $> ~/bin/color_test.sh test e[1;37mTESTe[0m test 太字で強調表示されたTESTが期待されたものです。
8 bash  sed  quoting 

1
日付を「2011年7月29日」から「20110729」に変更
フォーマット付きの日付を含むHTMLファイルがたくさんあります July 29th, 2011 私は、日付の書式を変更するJuly 29th, 2011には20110729、December 9th, 2010する20101209など、 私sedはうまくいくかもしれませんが、その間接的なシーケンスのために解決策を見つけることができません。

3
2つの単語を逆転させるためにSed
echo "AXIS2C_HOME=/usr/local/Axis2C" | sed 's/\(^AXIS2C_HOME=\) \(.*\)/ \2 \1/' 私が期待している出力はです/usr/local/Axis2C AXIS2C_HOME=。 私は自分が間違っていることを理解できません。:(
8 sed 

4
正規表現を使用して複数のファイルをコピー/名前変更(シェルスクリプト)
「assignment02.cc」、「assignment02.h」、「assignment02.txt」などのパターンに一致するファイルのコレクションがあります。これらのファイルを「assignment03.cc」、「assignment03」にコピー/名前変更したいと思います。 h '、' assignment03.txt 'など。 シェルスクリプトを使用してsedを使用するのは簡単だと思います。これまでのところ: OLD_NO=$1 NEW_NO=$2 echo "Moving from $OLD_NO to $NEW_NO" for name in assignment$OLD_NO.* ; do newname=$(echo $name | sed 's/\(.*\)$OLD_NO\(.*\)/\1xx$NEW_NO\2/') echo "$name -> $newname" # mv -v $name $newname done 残念ながら、sedを呼び出す方法は常に入力文字列$nameを返し、実際には正規表現の検索/置換を行いません。 注:インターネットを見ると、renameこの機能を持つコマンドがありますが、私のMacBookでは使用できません。

3
Nexenta bashスクリプトは、/ usr / bin / sedの代わりに/ usr / sun / bin / sedを使用します
LinuxおよびSolaris(Nexenta)用のスクリプトを使用しています。 この行はLinuxでは機能しますが、solarisでは機能しません(ただし、シェルから実行すると機能します)。 cat "pg_hba.conf" | sed "0,/^local/{s/md5/trust/}" エラーメッセージは次のとおりです。 sed: command garbled: 0,/^local/{s/md5/trust/} いくつかの調査の後sed、スクリプトでbashが使用するものが異なることがわかりました。 シェルから: /usr/bin/sed スクリプトから: /usr/sun/bin/sed スクリプトを使用させたい/usr/bin/sed。 私がやろうとしたこと: sedフルパスで呼び出します。同じ結果。それはまだ他を使用しているようsedです... 経由で呼び出そうとしましたbash -l。同じ結果。 別のコマンドを宣言しようとしました:代わりにS=/usr/lib/sed使用し$Sます。同じ結果。 PATHをチェック-cmdとスクリプトの両方に含ま/usr/binれています。 二重引用符を単一に置き換えようとしました。同じ結果。 -rフラグを指定してsedを実行してみました。出力は次のとおりです。 # /usr/xpg4/bin/sed -r /usr/xpg4/bin/sed: illegal option -- r Usage: sed [-n] script [file...] sed [-n] [-e script]...[-f script_file]...[file...] 助けて?? 「ローカル」で始まる最初の行で、「md5」の最初の一致を「信頼」に置き換える必要があります。そうでない場合でもできることはわかっていますが、sed問題はかゆみが多すぎることです! 編集: 私はこれが少し注文をすることを望みます... ログインシェルからのパス= /usr/local/ctera/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/ctera/apache-ant-1.8.2/bin …
3 sed  solaris  nexenta 


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