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

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

1
sed -e '$!d'が期待どおりに機能しませんか?
私が走ると: sudo /usr/local/nginx/sbin/nginx -t 私は戻ります: nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful 最後の行が欲しいので実行します: sudo /usr/local/nginx/sbin/nginx -t | sed -e '$!d' しかし、sedを使用しない場合と同じように戻ります。

5
文字列内の位置に基づいて可変数の先行ゼロを追加する拡張正規表現を実装する
数値の体系的なスキームにさまざまな数の先行ゼロを追加するためにsed構文を取得するのに問題があります。操作している弦は 1.1.1.1,Some Text Here sed構文を活用する sed -r ":r;s/\b[0-9]{1,$((1))}\b/0&/g;tr" 私は反応を引き出すことができます 01.01.01.01,Some Text Here ただし、私が探しているのは、フィールド2と3に最大2桁、フィールド4に最大3桁をゼロで埋めて、すべてのアイテムが[0-9]。[0-9]で標準の長さになるようにすることです。 2}。[0-9] {2}。[0-9] {3} 1.01.01.001,Some Text Here 私の人生では、境界を変更して、ピリオドに続く数字のみにスナップするために必要なパラメーターを含める方法すら理解できません。私は理解している\ bの使用に何らかの関係があると思いますが、単語の境界でゼロ文字と一致しますが、ピリオドを一致に追加しようとすると次のように失敗する理由がわかりません。 sed -r ":r;s/\.\b[0-9]{1,$((1))}\b/0&/g;tr" sed -r ":r;s/\b\.[0-9]{1,$((1))}\b/0&/g;tr" Both cause the statement to hang sed -r ":r;s/\b[0-9]\.{1,$((1))}\b/0&/g;tr" sed -r ":r;s/\b[0-9]{1,$((1))}\.\b/0&/g;tr" sed -r ":r;s/\b[0-9]{1,$((1))}\b\./0&/g;tr" cause the statement to output: 1.01.01.1,Some Text Here …

5
ファイルの最後のn行を編集するにはどうすればよいですか?
ファイルの最後のn行を編集できるコマンドはありますか?私はいくつかのファイルを持っていますが、そのすべてに異なる行数が含まれています。しかし、各ファイルの最後のn行を変更したいと思います。目標は、最後のn行でコンマをセミコロンに置き換えることです。しかし、最後のn行のみです。 行を削除したくありません。各ファイルの最後のn行のすべてのコンマをセミコロンに置き換えたいだけです。 sedコマンドを使用して、最後の行をこのコマンドで置き換えることができます。ここで説明するように: ファイルの最後の行のテキストを削除するにはどうすればよいですか? しかし、これにより、最後のn行ではなく、最後の行のみを変更できます。

8
文字が1回だけ含まれている場合に行を削除する方法
特定の文字を1回だけ含むファイルから行を削除したいのですが、その行が複数回存在する場合や存在しない場合は、その行をファイルに残してください。 例えば: DTHGTY FGTHDC HYTRHD HTCCYD JUTDYC ここで、私は削除したい文字があるCので、このコマンドは行を削除する必要がありますFGTHDCし、JUTDYC彼らが持っているので、C正確に一度だけ。 sedまたはを使用してこれを行うにはどうすればよいawkですか?

5
アンダースコアをカンマで置き換え、CSVで二重引用符を削除する
私はCSVファイルを持っています input.csv "1_1_0_0_76" "1_1_0_0_77" "1_1_0_0_78" "1_1_0_0_79" "1_1_0_0_80" "1_1_0_0_81" "1_1_0_0_82" "1_1_0_0_83" "1_1_0_0_84" "1_1_0_0_85" ............. 等々。 このCSVファイルをに変換する必要があります result.csv 1,1,0,0,76 1,1,0,0,77 1,1,0,0,78 1,1,0,0,79 1,1,0,0,80 1,1,0,0,81 1,1,0,0,82 1,1,0,0,83 1,1,0,0,84 1,1,0,0,85

6
ファイルのエポックタイムスタンプを他の形式に置き換える方法は?
人間が読める形式に変換する必要があるエポック日付を含むファイルがあります。私はすでに日付変換を行う方法を知っています、例えば: [server01 ~]$ date -d@1472200700 Fri 26 Aug 09:38:20 BST 2016 ..しかしsed、ファイルをウォークスルーしてすべてのエントリを変換する方法を理解するのに苦労しています。ファイル形式は次のようになります。 #1472047795 ll /data/holding/email #1472047906 cat /etc/rsyslog.conf #1472048038 ll /data/holding/web

9
行を列に変換する
ハイパーバイザーで実行されているVMに関する詳細を含むファイルがあります。コマンドを実行して、出力をファイルにリダイレクトします。そして、以下のフォーマットで利用可能なデータです。 Virtual Machine : OL6U5 ID : 0004fb00000600003da8ce6948c441bb Status : Running Memory : 65536 Uptime : 17835 Minutes Server : MyOVS1.vmorld.com Pool : HA-POOL HA Mode: false VCPU : 16 Type : Xen PVM OS : Oracle Linux 6 Virtual Machine : OL6U6 ID : 0004fb00000600003da8ce6948c441bc Status : Running Memory …


5
awk / sed / perl one liner + jsonファイルからプロパティ行のみを印刷する方法
jsonファイルからプロパティ行のみを印刷する方法 jsonファイルの例 { "href" : "http://master02:8080/api/v1/clusters/HDP/configurations?type=kafka-env&tag=version1527250007610", "items" : [ { "href" : "http://master02:8080/api/v1/clusters/HDP/configurations?type=kafka-env&tag=version1527250007610", "tag" : "version1527250007610", "type" : "kafka-env", "version" : 8, "Config" : { "cluster_name" : "HDP", "stack_id" : "HDP-2.6" }, "properties" : { "content" : "\n#!/bin/bash\n\n# Set KAFKA specific environment variables here.\n\n# The java implementation to use.\nexport JAVA_HOME={{java64_home}}\nexport …
10 awk  sed  perl  json  jq 

2
行の末尾のカンマを削除する
bashで一連の末尾のコンマを削除するにはどうすればよいですか。 a,b,c,d,,,, 1,2,3,,,, 望ましい出力: a,b,c,d 1,2,3 これをやってみました: grep "5628" test.csv | sed 's/,*$//g' しかし、それは機能しません。ファイルはもともとWindowsマシンからのものです。
10 sed 

3
複数行のテキストファイルで、中かっこの間のすべてのテキストを削除するにはどうすればよいですか?
例: This is { the multiline text file } that wants { to be changed } anyway. になるはずです: This is that wants anyway. フォーラムでいくつかの同様の スレッドを見つけましたが、それらは複数行の中括弧で動作しないようです。 可能であれば、grep、sed、awkなどに基づくソリューションなど、1行の方法を使用することをお勧めします。 編集:ソリューションは問題ないようですが、元のファイルに中括弧のネストが含まれていることに気づきました。だから私は新しい質問を開いています。皆さん、ありがとうございます。複数行のテキストファイルで、ネストされた中かっこの間のすべてのテキストを削除するにはどうすればよいですか?

4
改行文字を含む文字列を置き換えます
bashシェル、以下のもののような行を持つファイルに first "line" <second>line and so on の1つ以上の出現をに置き換え"line"\n<second>てother characters、毎回取得したいと思います。 first other characters line and so on 両方などの特殊文字で文字列を置換する必要があり、私はそう"と<して改行文字と。 他の回答の間で検索したところsed、コマンドの右側(other characters文字列)の改行は受け入れられるが、左側は受け入れられないことがわかりました。 またはでこの結果を取得する方法(これよりも簡単)はありますか?sedgrep


2
ファイルのインプレース変更はどのように行われますか?
ファイルの「インプレース」変更とは、たとえば、sed -iまたはそれをperl -i意味しますか? 私の質問は、このインプレース修正がどのように行われるかについてです。ファイルはコピーされますか?変更はコピーで行われ、元のファイルを置き換えますか?または、元のファイルが何らかの方法で変更されていますか?
10 files  sed  perl 

4
二重引用符内にあるコンマのみを削除します
テキストファイルで、,(カンマ)と"(引用符)も削除したい(二重引用符にカンマで区切られた数値が含まれている場合のみ)。 56,72,"12,34,54",x,y,"foo,a,b,bar" 期待される出力 56,72,123454,x,y,"foo,a,b,bar" 注:上記の行は例として示しています。私のテキストファイルには上記のような多くの行が含まれており、二重引用符で囲まれたカンマで区切られた数字は異なるはずです。あれは、 56,72,"12,34,54",x,y,"foo,a,b,bar" 56,92,"12,34",x,y,"foo,a,b,bar" 56,72,"12,34,54,78,76,54,67",x,y,"foo,a,b,bar" 56,72,x,y,"foo,a,b,bar","12,34,54" 56,72,x,y,"foo,a,b,bar","12,34,54","45,57,84,92","bar,foo" 予想される出力: 56,72,123454,x,y,"foo,a,b,bar" 56,92,1234,x,y,"foo,a,b,bar" 56,72,12345478765467,x,y,"foo,a,b,bar" 56,72,x,y,"foo,a,b,bar",123454 56,72,x,y,"foo,a,b,bar",123454,45578492,"bar,foo" nコンマで区切られた二重引用符内にいくつかの数字があります。また、文字を含む二重引用符はそのままにします。 sedテキスト処理ツールが大好きです。sedこの解決策を投稿していただければ幸いです。

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