皆さんに本当に簡単な質問があります。ここのドキュメントとサイトを調べた後、grepが各一致を同じ行に出力しないようにすることができるかどうか疑問に思いました。
私の例では、_\xeb\x1a\x5e\x31\xc0\x88\x46\x07...
_などの形式の文字列を取得する必要があります。grep -oP "x\K(\S\S)")
を使用して各16進数を取得します。
出力は正しいですが、各一致は独自の行にあります。この出力を別のプログラムにフィードする必要があるため、これは問題です。繰り返しになりますが、パディングを一切行わずに各試合を連続して行う方法はありますか?
出力をtr
にパイプすることができます。
grep -oP "x\K(\S\S)") | tr -d '\n'
これには追加のプロセスが必要です。つまり、プログラムが遅くなります。これが問題である場合は、sed
またはawk
を使用できます。
sed
にフィードしてすべての改行文字を削除すると機能しますか(\n
)?
echo \xeb\x1a\x5e\x31\xc0\x88\x46\x07 | grep -oP "x\K(\S\S)" | sed ':a;N;$!ba;s/\n//g'