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

Sedは、標準入力またはユーザー指定のファイルに対してさまざまなフィルタリングや変換機能を実行できるという点で、ストリームエディターとして知られています。通常、テキストファイル内の検索と置換に使用されます。あなたの質問がテキスト処理についてであるならば、このタグはおそらく適切です

3
grep / sed / awkを使用して文字列から単語を抽出する
文字列を持っています 00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -Dspring.profiles.active=qa -XX:MaxPermSize=256 そしてqa続く単語を抽出したい-Dspring.profiles.active。 デモのために、文字列をファイルtext.txtに保存しています。 私がする時 grep -r -o "spring.profiles.active=" text.txt 結果は spring.profiles.active= この言葉は、常にされていないqa、それは可能性がありprodかdev。 私は何をしたいのは、単語を見つけることですspring.profiles.activeし、後=の抽出物、その単語。 これをシェルスクリプトにしたいのは、サーバー上の他のアイテムを構成するためにこの単語を使用しているためです。 これは可能ですか?もし可能なら、どうすればいいですか?
12 command-line  bash  grep  sed  awk 

3
複数行の文を介したSed代替
私はsedを使用するのは初めてですが、sed s/..../..../(代替)を試して、1行にある場合は完全な文を修正しましたが、次のように2行に分かれている可能性のある文を修正する方法に関する代替ソリューションを知りません: この: Lorem Ipsum is simply dummy text of the printing and typesetting industry. 実際には次のように書かれています: Lorem Ipsum is simply dummy text of the printing and typesetting industry. これをどのように検出するか、1行ではなく2行であっても文全体を置き換えるようにコーディングできますか?
11 command-line  sed 

2
:a; $!N;の意味は何ですか sedコマンドで?
$ (echo hello; echo there) | sed ':a;$!N;s/\n/string/;ta' hellostringthere 上記のsedコマンドは、改行文字を文字列「string」に置き換えます。しかし:a;$!N;s/\n/string/;ta、一重引用符内の意味はわかりません。真ん中がわかりs/\n/string/ます。しかし、私は最初(:a;$!N;)と最後(ta)の部分の機能を知りません。

2
sedコマンドの使用時に終了ステータスを取得するにはどうすればよいですか?
grepコマンドは終了ステータスを提供します: $echo "foo.bar" | grep -o foo foo $echo $? 0 $echo "foo.bar" | grep -o pop $echo $? 1 しかし、私は使用する必要sedがあり、終了ステータスがないことに気づきました: $echo "foo.bar" | sed 's/bar.*$//' foo. $echo $? 0 $echo "foo.bar" | sed 's/pop.*$//' foo.bar $echo $? 0 私はこの-qオプションを試してみるべきだと知っていますが、成功していません。
11 command-line  sed 

2
ファイルの名前を変更するときにスペースを置き換えない
私はこのようにファイルの名前を変更しようとしています: for file in *; do mv -i "$file" "$(echo "$file" | sed -e 's/[^A-Za-z0-9._-]/_/g')"; done ただし、sedコマンドはすべてのスペースをに置き換えます_。 sedコマンドを編集して、指定した文字と共にスペースを含めるにはどうすればよいですか?使ってみましたがうまくいき\sません... EDIT: たとえば、次のファイルtrip: hill、名前を変更する必要がありますtrip_ hillが、作るそれ以上のコマンドtrip__hill。


3
sedで複数行を挿入する方法
これを追加したい #this ##is my text 行の前 the specific line 私はこれを試しました sed -i '/the specific line/i \ #this ##is my text ' text.txt ただし、「テキスト」のみが追加されます。 私はまたして様々な組み合わせを試してみました\し、" "何も働きました。
10 bash  sed 

2
この「apt-get remove」命令は何をしますか?
次のコードは何をしますか? インターネットで見つけたのでコピーしてターミナルに貼り付けましたが、新しいカーネルをインストールすると古いカーネルしか検出されません。 sudo apt-get remove --purge $(dpkg -l 'linux-image-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d')
10 command-line  apt  kernel  sed 

2
ファイル内の複数の行を単一の単語に置き換えるにはどうすればよいですか?
私のfilenameファイルの内容は次のとおりです(たとえば): My block of line starts from here START First line second line third line END and end to here for example. 私は間のラインのブロックを交換したいSTARTとENDして、たとえば、1つだけの単語でSINGLEWORD。以下のように: My block of line starts from here SINGLEWORD and end to here for example. 次のコマンドを使用して、行ブロックを見つけることができます。 grep -Pzo "START(.|\n)*END" filename 上記のコマンドを実行した結果は次のようになります。 START First line second line third line …

2
AWKを使用して2番目の列を取得する
データの2番目の列を取得するawkコマンドを取得できないようです。 バッシュコード: filter_data=$(awk "{if(/$filter:/) print $2}" < scanresults_temp.txt) printf "$filter_data \n" $ filter変数は、シェルスクリプトに渡されるDownloadまたはUploadの値です。したがって、awkはDownloadまたはUploadという用語を使用して、適切な行を検索します。 ファイルの内容は次のとおりです。 Testing download speed................................................................................ Download: 51.13 Mbit/s Testing upload speed................................................................................................ Upload: 57.38 Mbit/s 私は、数字だけではなく他の何かを取得しようとEX、午前51.13と57.38。
9 bash  grep  sed  awk 

6
一連のsedコマンドがコマンドラインで機能するが、スクリプトでは機能しない
私は働いている.csvの出力このSEデータクエリ(のみ5022のエントリで)次のようになります。 "{ ""id"": 281952, ""title"": ""Flash 11.2 No Longer Supported by Google Play"" }" "{ ""id"": 281993, ""title"": ""Netbeans won't open in Ubuntu"" }" (そして^M、[number]と "" title ""の間に行末があります)。次のようにする必要があります。 281952,Flash 11.2 No Longer Supported by Google Play 281993,Netbeans won't open in Ubuntu これを特定のテキストエディターで修正しましたが、これは非常に簡単に無名のままですが、クエリを更新するたびに再度実行する必要がなく、他のユーザーが使用できるように、スクリプトを作成したいと思いました。私が使ったsed... この一連のコマンドは完全に機能します(ただし、効率が悪い場合があります。これは試行錯誤による解決策にすぎません)。 # Print the ^M and remove them, …

2
Moreutils tsによる配管
シリアルポートに着信ストリームがあり、毎秒約1回新しいラインが表示されます wren@Raven:~$ cat /dev/ttyUSB0 A_Sensor1,B_22.00,C_50.00 A_Sensor1,B_22.00,C_50.00 A_Sensor1,B_22.00,C_50.00 A_Sensor1,B_22.00,C_50.00 A_Sensor1,B_22.00,C_50.00 空白行を取り除き、残りにタイムスタンプを付けたい。 sedは空白行をカリングしてタイムスタンプを追加しますが、タイムスタンプを更新することはできません。呼び出された時間を報告するだけです。 wren@Raven:~$ cat /dev/ttyUSB0 | sed -e '/^$/d' -e "s/$/`date +\,%F\,%T`/" A_Sensor1,B_22.00,C_50.00,2014-05-14,09:44:42 A_Sensor1,B_22.00,C_50.00,2014-05-14,09:44:42 A_Sensor1,B_22.00,C_50.00,2014-05-14,09:44:42 A_Sensor1,B_22.00,C_50.00,2014-05-14,09:44:42 A_Sensor1,B_22.00,C_50.00,2014-05-14,09:44:42 A_Sensor1,B_22.00,C_50.00,2014-05-14,09:44:42 A_Sensor1,B_22.00,C_50.00,2014-05-14,09:44:42 ^C Moreutilsの一部であるtsを見つけました。これにパイプして更新タイムスタンプを取得できます。 wren@Raven:~$ cat /dev/ttyUSB0 | ts May 14 09:49:26 A_Sensor1,B_22.00,C_50.00 May 14 09:49:26 May 14 09:49:27 A_Sensor1,B_22.00,C_50.00 ^C ただし、tsとsedを適切に組み合わせることができません。 これは私が望むことをするように見えるが、出力をまったく生成しない wren@Raven:~$ …

3
sedのドット(。)の置換
だから実際の質問は-誰かがM-BM-他のキャラクターを失う危険を冒すことなく特別なキャラクターを削除する方法を知っていますか? テキストの文字列があります: " . . ." あれは space dot space dot space dot 私はテキストファイル内のこの文字列のすべての出現を置き換えようとしています "..." あれは dot dot dot 私はsedでやろうとしていました: sed -r 's:\s\.\s\.\s\.:...:g' -i sed-dots 残念ながら、それは少しでも入力ファイルを変更しません。ファイル:https : //www.dropbox.com/s/46zmiruy3ln85a1/sed-dots テキストエディター(geanyを使用)で同じ文字列を置換しようとすると、適切に検出および置換されます。 私が考えることができる唯一の理由は、それらのスペースの一部(またはすべて)が実際にはスペースではなく、いくつかの特殊文字であることです。 その文字列を検索してsed(または他のコマンドラインツール)で置き換える方法を知っている人はいますか?私のファイルであなたのアイデアをテストしてください。問題は明らかなように明らかではないためです-これが私が質問した理由です。 cat -Amyfile を使用した後、それらのスペースがスペースではなくM-BM-特殊文字であることが問題のようです。.他の一部の文字が削除されるリスクがあるため、検索用に提案された記号を使用することはお勧めできません。

5
大きなテキストファイルでgrep / sedを使用して日付の範囲からテキストを取得する方法
大きなファイルテキスト(ほぼ3 GB)があります。これはログファイルです。このファイルから、7月13日から7月19日までの日付の範囲に対応するテキストの行を取得します。私のログ形式は: 2016-07-12 < ?xml version> 2016-07-13 < ?xml version> 2016-07-18 < ?xml version> 2016-07-18 < ?xml version> 2016-07-19 < ?xml version> 2016-07-20 < ?xml version> sample text sample text sample text sample text sample text sample text 2016-07-20 < ?xml version> sample text sample text 2016-07-20 < ?xml version> …


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