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

「sed」(「ストリームエディタ」)は、テキストファイルを解析および変換するUnixユーティリティです。

3
ファイルから単語をどのように解析しますか?
こんにちは、このようなファイルがあるとしましょう <jack, john. ................ ,joe ..........Jen.. >Tom Edwa4rd 4Tim Richard これを次のようなクリーンなリストに変換するにはどうすればよいですか jack John joe Jen Tom Tim Richard エドワードがリストにないことに注意してください Linuxコマンドを使用していますか?おそらくgrepおよび/またはsed
1 linux  grep  sed 

3
sedを使用して行から3番目の文字を削除します
次のsed構文@は、文字列に最初の文字が存在する場合、最初の文字を削除します。 sed 's/^@\(.*\)/\1/' しかし@、3番目の位置にある場合にのみ文字を削除するように変更するにはどうすればよいですか?たとえば、次の行で削除する必要があります。 AB@CDEF 3番目の文字が@であるかどうかを確認し、そうであれば、行から削除するスクリプトが必要です。
1 regex  sed 

2
sed regex特殊文字を削除します
私はHTML形式のテキストに由来するいくつかの文字列を含むファイルを持っているので、それらはコンソールインターフェースでは良く見えないいくつかのHTMLシーケンスを持っています。これが例です: Text1™ [Text®2] Text:3 私が試みているのは、& Aの間のすべてを削除することです。そして。そのため、テキストは次のように再び読みやすくなります。 Text1 Text2 Text3 私は実際に余分な文字を削除するためにsedを使用しようとしています: sed 's#&*;##g' <file> 問題はそれが削除されるだけであるということです。テキスト文字列から。 問題は、余分なチェーンを削除するために正規表現をどのようにコーディングするべきかということです。 &#[1-9] +;


1
UNIXの2つのファイルから一致するレコードを見つける方法
email_idsを含む2つのファイルがあります。1. Test1.txt 2. Test2.txt Test1.txtの内容は次のとおりです。 abc@gmail.com xyz@gmail.com mns@gmail.com Test2.txtの内容は次のとおりです。 jpg@gmail.com joy@yahoo.com abc@gmail.com pet@yahoo.com ここで、abc @ gmail.comはTest1.txtとTest2.txtの共通IDです。これら2つのファイルからそのようなIDを見つけて、1つのファイルに挿入したいと思います。 提案してください。これら2つのファイル間で共通のIDが必要です。
unix  sed  awk 

1
sed:/etc/dbus-1/session.confを読み取れません:入出力エラー
ZDNetの上のガイドに続き、ここで、Iは、1行のコードは私に迷惑を与えてきたもののUbuntuのデスクトップは、Windows 10上で作業を取得しようとしています。 sudo sed -i 's/<listen>.*<\/listen>/<listen>tcp:host=localhost,port=0<\/listen>/' /etc/dbus-1/session.conf 「/etc/dbus-1/session.confファイルまたはディレクトリが見つかりません」を読み取ることができませんでした そこで、「/ etc / dbus-1 / session.conf」ファイルをオンラインで見つけて追加しました。bashを再起動し、それを見つけましたが、今回は: sed:/etc/dbus-1/session.confを読み取れません:入出力エラー 私が得るものです。 どうすれば修正できますか?

3
内容が別のファイルと一致する場合、 `tail -f file`の出力行の前に追加
次のすべてをタイトルに詰め込もうとするのは大変だったので、これが私が本当に言っていることです。 私がやっているtail -F access.logリアルタイムでのApache2ログを監視します。各行の最初のものは、IPアドレスとそれに続くスペースです。また、各行がIPアドレス、コンマ、名前である不変のCSVファイルもあります。例えば: 10.1.2.33,John Smith 10.1.2.190,Jane Doe 成果物:以前と同じようにアクセスログを追跡したいのですが、CSVに現在のログファイルの行の先頭と同じIPアドレスを持つ行が含まれている場合は、行の先頭に人の名前を挿入します。 たとえば、次のような行: 10.1.2.33 - - [22/Aug/2013:13:41:24 +0000] "GET /index.php ... 代わりに次のようにレンダリングする必要があります。 John Smith 10.1.2.33 - - [22/Aug/2013:13:41:24 +0000] "GET /index.php ... 理想的には、いくつかの正規表現コマンドを一緒にパイプすることでこれを完全に行いたいと思います。これまでのところ、私の最大の問題は、grepがstdinのパターンを受け入れず、stdinのサブジェクトを予期することです(何かが欠落していない限り)。また、必要に応じてCSVをより適切な形式に変換するのに問題はありません。ありがとう。

1
行内のパターンを見つけ、一致したパターンを同じ行に追加します
私はcsvにリストされているメモからジョブ番号を引き出して、できればsed、awk、grepまたはperl(Cygwinにインストールしたもの)を使用して、その番号を行末に追加しようとしています。 モックアップは次のとおりです。 "HD1231203", "1231232","fake.name","Lots of text before the job 150232 and then more" "HD5164635", "8918123","more.fake","151243 and then some text" "HD1541545", "8435413","last.fake","Oh look, we've got 150213 and 151487 this time!" になるはずです: "HD1231203", "1231232","fake.name","Lots of text before the job 150232 and then more", "150232" "HD5164635", "8918123","more.fake","151243 and then some text","151243" "HD1541545", "8435413","last.fake","Oh …

1
シェルスクリプト:同じ名前のフォルダーが存在しない場合にファイルを削除する
一連のフォルダーと一連の*.DATファイルがあります。同じ名前(なし)のフォルダーが存在しない場合 、*.DATファイルを削除します.DAT。 このソリューションに到達するまでに時間がかかりました。 find . -type d > dirs.txt for F in `find *.DAT` do F=$(sed 's|\.DAT||g' <<< $F) if grep "$F" dirs.txt; then echo "$F found" else rm $F.DAT fi done しかし、はるかに簡単な解決策があるはずだと思います(エレガントなワンライナー?ファイルを作成せずに...?)。私は正しいですか?
shell  grep  sed 

3
xargsとsedを組み合わせてaaファイルを変更または変更します
ファイル内の行の最後にある一般的なパターン*** _ 23を検索していますが(同じ:at_23ではありません)、同じソースファイル内のすべての検出結果を\ <23>に変更しようとしています(挿入関数はsedです-i) 私はやっています: egrep '[b-s u v w x y z ]+_[0-9]+$' sst_piso_top_c0.spf_typ_C | xargs... しかし、sedを続行しようとしても失敗しました。 誰かがxargsの後に続ける方法を説明できますか?リストをsedに配信し、sedにリスト内の各リストを処理し、同じファイルで変更するように指示するにはどうすればよいですか?
sed 

2
エスケープされた一重引用符がgrepで機能しないのはなぜですか?
私は文字列を一致させようとしています: * * * * * /usr/local/bin/growlnotify -t 'helloTitle' -m 'helloMessage' -n 'myApp' -sw で: crontab -l | grep '^[^#].*/usr/local/bin/growlnotify.*\-n \'myApp\'.*$' 動作しません:一致するものはありません。 しかし: crontab -l | grep '^[^#].*/usr/local/bin/growlnotify.*\-n.*$' 非常に良い動作: * * * * * /usr/local/bin/growlnotify -t 'helloTitle' -m 'helloMessage' -n 'myApp' -sw 問題は\'myApp\'何ですか? grep / sedで一重引用符をエスケープする方法は?
regex  grep  sed 

2
ファイル内の特定の情報を収集する方法
さまざまなハードウェア情報が必要です。シリアル番号、機能など、他の多くのものと同様に、私はを見つけましたがhwinfo、必要な情報をはるかに超える情報を取得します。 例えば: 18: IDE 200.0: 10600 Disk [Created at block.245] Unique ID: WZeP.yFECJK3_8V4 Parent ID: w7Y8.7HLn7TSO9I7 SysFS ID: / class / block / sdb SysFS BusID: 2: 0: 0: 0 SysFS Device Link:/devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0 Hardware Class: disk Model: "KINGSTON SV300S3" Vendor: "KINGSTON" Device: "SV300S3" Revision: "BBF0" Serial ID "50026B77470B5AC3" Driver: "ahci", …
linux  unix  sed  awk 

0
PowerShellのsedの後方参照構文
PowerShellのSEDでキャプチャグループを後方参照するにはどうすればよいですか?構文が見つからないようです。 IE私はecho "hello" | sed "s|(h)ello|world\1|"出力する予定ですworldhが、代わりに次のエラーが表示されます: sed : sed.exe: -e expression #1, char 18: invalid reference \1 on `s' command's RHS At line:1 char:16 + echo "hello" | sed "s|(h)ello|world\1|" + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (sed.exe: -e exp...' command's RHS:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError

2
N番目の発生時に置換
私はこのコードを持っています sed '/Sometexts/ r newtext.txt' old.txt > new.txt これにより、文字列「Sometexts」がテキストファイルnewtext.txtの内容に置き換えられます しかし、私は「Sometexts」文字列の2番目の出現で置き換えたい アーカイブする方法は?
bash  terminal  sed 

0
ポートを介してどのように「sed」できますか?
例: telnetデーモンサーバーは「Hello there user」とエコーします。 例のために、デーモンのバージョンは現時点では変更できず、より良い挨拶をする必要があるとしましょう。 クライアントは次のように接続します。 telnet 127.0.0.1 1111 >Hello there user. もちろん、クライアントを介してsedするのは簡単です... telnet 127.0.0.1 1111 | sed 's/user/Dear user/g' >Hello there Dear user. しかし、これは望ましくありません。クライアントが正常に接続し続けることを望みます。 デーモンポート1111で直接sedして、変更されたグリーティングを何らかの方法で出力することは可能ですか?そしてどうやって?

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