作業例:
オリジナル:
% echo -e "This is number 800 with decimal;other stuff\n44333; more data"
This is number 800 with decimal;other stuff
44333; more data
欲しいawk結果:
% echo -e "This is number 800 with decimal;other stuff\n44333; more data" | awk
;other stuff
; more data
更新:すべての回答後:区切り記号 ";"は行ごとに1回だけ存在し、行が存在する場合は存在するため、私の解決策は常に機能しますが、他の解決策ほど一般的ではありません(空白行、区切り文字なしの行、または複数の区切り文字がある行)。
ベストアンサー1
すべての Unix システムのすべてのシェルで awk または sed を使用します。
awk '{sub(/[^;]*/,"")}1' file
sed 's/[^;]*//' file
ただし、上記のコードはそれを含まないすべての行に対して空の行を印刷するため、これらの行が入力に存在できる;
場合は、次のものが必要になる場合があります。
awk '{sub(/[^;]*;/,";")}1' file
sed 's/[^;]*;/;/' file
上記は、;
sを含まない行をそのまま印刷するか、その行を削除したいとします。
awk 'sub(/[^;]*;/,";")' file
sed -n 's/[^;]*;/;/p' file