すべての奇数行に表示される特定の文字の後のすべてのテキストを削除します。
これはsedファイルのすべての行で機能します。
sed 's/;.*//'
すべての奇数行のみを処理するようにこのsed行をどのように編集できますか?
ベストアンサー1
GNUの使用sed
:
$ sed '1~2s/;.*//' file
アドレス範囲は1~2
ライン 1 と一致し、その後は他のすべてのラインと一致します。一般的なケースは、first~step
マニュアルの例がすべてのsed -n 1~2p
奇数行を印刷することです。
これはGNU拡張です。
以下の該当するコンテンツawk
:
$ awk 'NR % 2 { sub(";.*", "") } { print }' file
またはArrowがコメントで提案したように:
$ awk -F';' 'NR % 2 { $0 = $1 } { print }' file
同じ効果がありますが、最初の項目以降のすべての内容を明示的に置き換えるのではなく、フィールド区切り文字として使用されます(フィールドを;
使用)。;
-F';'