したがって:
1
2
3
4
5
6
結果は次のようになります。
1
2
3
4
5
6
答え1
これにより、空行のみが削除されます。作業中のすべてのジョブが出力されたら、「ファイル」を削除できます。
sed '/^[[:space:]]*$/d' file
空白で始まり、埋め込み、終わるすべての行で動作します。
ファイルを標準出力に送信するのではなく、直接編集するには:
sed -i '/^[[:space:]]*$/d' file
出力
1
2
3
4
5
6
答え2
cut
コマンドはこの要件に適したツールではありませんが、必要な結果を得るためのコマンドを作成できます(または使用するツール):
<infile cut -d$'\n' -f1$(printf '%s' ,{3..18..2})
{min..max..step}
はいbash 中かっこ拡張出力生成(クリップオプション,3,5,7,9,11,...
に奇数フィールド番号を生成)-f
-f1,3,5,7,11,...
最高入力ファイルに不明な行数がある場合は、非常に大きい数を使用してください。
これは奇数行のみを選択するため、空行と考えられる行はスキップされません。
答え3
cut
主に特定のツールを抽出するためにリストデータから(反対とは反対paste
)、したがってテキスト行を削除/抽出するのに適したツールではないかもしれません。
GNUをsed
使用して、2行目から始まる2行目を削除できます。
$ sed '2~2d' file
1
2
3
4
5
6
...または行1から始めて、他のすべての行を印刷します(他の行は無視されます)。
$ sed -n '1~2p' file
1
2
3
4
5
6
アドレスx~y
範囲はlineを参照し、x
その後y
の各行を参照します(これはsed
標準のGNU拡張ですsed
)。
答え4
awk NF
あなたが必要なすべてです。 NFは、スペースで区切られたフィールドの数です。 0は無効なブールなので、この行は印刷されません。