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

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

2
2つのパターン間(および含む)の行を印刷します
行CKの末尾にある行からgrepを開始し、行の末尾にあるときにgrepを停止しDます。試しましたgrep "$CK" "$D" file..txtが、うまくいきませんでした。 入力: kkkkkkkkkkk jjjjjjjjjjjjjjjjjj gggggggggggg/CK JHGHHHHHHHH HJKHKKLKLLL JNBHBHJKJJLKKL JLKKKLLKJLKJ/D GGGGGGGGGGGGGG GGGGGGGGGGGGGG 目的の出力: gggggggggggg/CK JHGHHHHHHHH HJKHKKLKLLL JNBHBHJKJJLKKL JLKKKLLKJLKJ/D

3
ファイルの5番目の列の値に基づいて.CSVファイルをフィルター処理し、それらのレコードを新しいファイルに出力します
次の形式の.CSVファイルがあります。 "column 1","column 2","column 3","column 4","column 5","column 6","column 7","column 8","column 9","column 10 "12310","42324564756","a simple string with a , comma","string with or, without commas","string 1","USD","12","70%","08/01/2013","" "23455","12312255564","string, with, multiple, commas","string with or, without commas","string 2","USD","433","70%","07/15/2013","" "23525","74535243123","string , with commas, and - hypens and: semicolans","string with or, without commas","string 1","CAND","744","70%","05/06/2013","" "46476","15467534544","lengthy string, with …
16 linux  sed  awk  csv  filter 

2
grep:ファイル名を一度表示してから、行番号付きのコンテキストを表示します
ソースコードにはエラーコードが散在しています。grepを使用すると簡単に見つけることができますが、次の行に沿って出力を提供find_codeする(たとえばfind_code ####)実行できるbash関数が必要です。 /home/user/path/to/source.c 85 imagine this is code 86 this is more code 87 { 88 nicely indented 89 errorCode = 1111 90 that's the line that matched! 91 ok this block is ending 92 } 93 } 現在私が持っているものは次のとおりです。 find_code() { # "= " included to avoid matching unrelated number …

2
sedを使用してコロンが最初に現れるまで削除します
私のsedコマンドは、 sed '/(.*:)/d' <<< 'abcd:bcde:cdeaf' 戻らなければならない、 bcde:cdeaf (つまり)行の最初のコロンの前のすべての文字とコロン自体を削除する必要があります。 しかし、これは何も削除しません。 私の混乱は主に、 1)パターンマッチングの括弧は、sed regex-es内でエスケープする必要がありますか? 2)どちらの場合でも(エスケープ/エスケープなし)、動作していません。私は試した、 sed -E '/\\(.*:\\)/d' <<< 'abcd:bcde'
16 sed 

5
sedを使用して2つのタグ間のテキストを抽出する
.xmlファイルがあり、RHEL6マシンで「groupinstall」を実行しようとしています。その.xmlファイルには数百のライブラリがあります...(16,000行近く)。 したがって、この構造を持つ.xmlファイルに含まれるグループ名を抽出しようとしています。 <b> <group> <id> group name </id> <packages> ... </packages> <id> group name 2 </id> <packages> ... </packages> <id> etc... </id> </group> </b> 基本的に、これは私が試したものです: sed -n '/<id>/,/<\/id>/p' test1.txt > test2.txt .xmlファイルをtest1.txtにコピーしました。グループ名をtest1.txtからtest2.txtという2番目のファイルに抽出しようとしています。ただし、上記の行では、ファイルの最初の<id>タグから最後の</id>タグまですべてを抽出しています。コードを変更して複数回抽出するにはどうすればよいですか? 2番目の質問は、-downloadonlyプラグインはyumのグループでも機能しますか?
16 sed 

5
シェルコマンドをsed式に埋め込む方法は?
次の形式のテキストファイルがあります。 keyword value keyword value ... キーワードは単一の単語であり、値は行末までその他すべてです。値(キーワードではなく)がシェル拡張されるように、シェルスクリプトからファイルを読み取りたいです。 sedを使用すると、キーワードと値の部分を簡単に一致させることができます input=' keyword value value keyword "value value" keyword `uname` ' echo "$input"|sed -e 's/^\([^[:space:]]*\)[[:space:]]\(.*\)$/k=<\1> v=<\2>/' 生産する k=<keyword> v=<value value> k=<keyword> v=<"value value"> k=<keyword> v=<`uname`> しかし、問題は、シェルコマンドをsed式の置換部分にどのように埋め込むことができるかです。この場合、私は交換が欲しい\1 `echo \2`です。
16 shell  sed 

4
sedを使用したbash変数の処理
bash変数LATLNGには、そのような括弧内に緯度と経度の値が含まれています (53.3096,-6.28396) 私はこれらをLATとLONと呼ばれる変数に解析したいので、sedを介してそうしようとしています LAT=$(sed "s/(\(.*\),\(.*\))/\1/g" "$LATLNG") LON=$(sed "s/(\(.*\),\(.*\))/\2/g" "$LATLNG") ただし、次のエラーが表示されます。 sed: can't read (53.3096,-6.28396): No such file or directory

2
ファイル内のすべての行をsedで置換した、行内の最初のパターンの置換
1つのライナーでそれを行うことは可能ですか? 私はこのような出力を持っています: "First line" - Description " Second line" - Description "Third line" - Description " Fourth line" - Description この入力は自動的に生成されます。 行ごとに最初に出現する"(引用符+スペース)を"(引用符)に置き換えたい。置換をグローバルに適用すると、line" -toの出現line"-箇所もすべて変更されるので、これを実現するためにsed oneライナーを使用できるかどうか疑問に思いました。 ^このように使ってみました sed -r ':a;N;$!ba;s/(\^\" )/\"/g' しかし、それは機能しておらず、何も置き換えません。私は試した sed -r ':a;N;$!ba;s/(^|\" )/\"/g' そしてそれはすべての出現を置き換えます。私はsedを使い始めたばかりなので、何か間違っているのか本当にわかりません。 ここで何が欠けていますか?


8
sed-ファイル内の文字列(カンマ)の最後の出現を削除しますか?
非常に大きなcsvファイルがあります。最後の,sed(または同様の)をどのように削除しますか? ... [11911,0,"BUILDER","2014-10-15","BUILDER",0,0], [11912,0,"BUILDER","2014-10-15","BUILDER",0,0], [11913,0,"BUILDER","2014-10-15","BUILDER",0,0], ] 望ましい出力 ... [11911,0,"BUILDER","2014-10-15","BUILDER",0,0], [11912,0,"BUILDER","2014-10-15","BUILDER",0,0], [11913,0,"BUILDER","2014-10-15","BUILDER",0,0] ] 次のsedコマンドは、行ごとに最後のオカレンスを削除しますが、ファイルごとに必要です。 sed -e 's/,$//' foo.csv これも機能しません sed '$s/,//' foo.csv
15 sed 

9
sedを使用してファイル内のすべての出現を検索する
OPEN STEP 4.2 OSを使用しています...現在、次のsedコマンドを使用しています。 sed -n '1,/141.299.99.1/p' TESTFILE | tail -3 このコマンドは、IPが141.299.99.1のファイル内で1つのインスタンスを検索し、その前に3行も含めます。これは、IPのすべてのインスタンスとその前の3行も検索したいという例外を除きます。そして最初だけではありません。
15 sed 



8
複数行のgrepを実行する方法
2行に表示されるテキストに対してgrepをどのように実行しますか? 例えば: pbsnodes Linuxクラスタの使用率を返すコマンドです root$ pbsnodes node1 state = free procs = 2 bar = foobar node2 state = free procs = 4 bar = foobar node3 state = busy procs = 8 bar = foobar 「フリー」状態のノードに一致するprocの数を判別したい。これまで「procの数」と「フリー状態のノード」を特定できましたが、それらをすべてのフリーprocを表示する1つのコマンドに結合したいと思います。 上記の例では、正解は6(2 + 4)になります。 私が持っているもの root$ NUMBEROFNODES=`pbsnodes|grep 'state = free'|wc -l` root$ echo $NUMBEROFNODES …

8
個別の行を引用符付きのエントリを含むコンマ区切りリストに変換する
次のデータ(Rmarkdownファイルから解析されたRパッケージのリスト)があり、それをインストールのためにRに渡すことができるリストにしたい: d3heatmap data.table ggplot2 htmltools htmlwidgets metricsgraphics networkD3 plotly reshape2 scales stringr リストをフォームのリストに変換したい: 'd3heatmap', 'data.table', 'ggplot2', 'htmltools', 'htmlwidgets', 'metricsgraphics', 'networkD3', 'plotly', 'reshape2', 'scales', 'stringr' 現在、生ファイルから上記のリストに移動するbashパイプラインがあります。 grep 'library(' Presentation.Rmd \ | grep -v '#' \ | cut -f2 -d\( \ | tr -d ')' \ | sort | uniq 新しい行をコンマ区切りリストに変換するためのステップを追加したいと思います。を追加しようとしましたがtr '\n' …
15 linux  sed  csv  tr 

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