1行を数回分解し、各ステップの後に再組み立てしますが、各コマンドは出力に新しい行を追加します。
デフォルトでは、次のコマンドは次のとおりです。
h
s#(^.*?)(\[\{.*$)#\1#p
g
s#(^.*?)(\[\{.*?\}\])(.*)$#echo \2 | jq --sort-keys --compact-output#ep
g
s#(^.*?\}\])(.*)$#\2#p
z
しかし、元の行はsedの後に3行を生成します。各行は/p
内容の後に改行を追加するためです。これをどのように避けることができますか?入力の1行は出力の1行につながる必要があります。
代わりに、フラグ付きのファイルにコマンド結果を書き込み、コマンドで読み取ろうとしましたが、ファイルの内容が出力に直接追加され、/p
同じ結果が表示されます。s
/w filename
r filename
/p
sedに-nコマンドライン引数を追加しようとしたからです。
コンテキストを追加するには、タイムスタンプ、リクエストURI、リクエストJSON本体、リクエストヘッダーで構成されるログHTTP POSTリクエストを解析しており、次のものを使用しようとしています。ジャックJSON属性の統合ソート。
ベストアンサー1
あなたの質問を正しく理解したら、を使用して改行tr -d '\n'
文字を削除することができますsed
。