0

わかりました、私は完全に困惑しています...

シナリオ: Word で表示した場合の 100 行のテキストを含む .rtf ファイル。1 行に「Linux」という単語があり、その下に空白行があります。「Linux」の行を保持し、その下の空白行を削除する必要があります。ただし、vi で見ると行は真に空白ではないため、空白行の削除を扱った投稿はどれも機能しません。また、正規表現と次の行を含む行を削除する投稿をたくさん見つけることができますが、正規表現の行を保持する必要があります。このファイルには、「Linux」という単語を含む行が 1 行だけあります。

私はsedがこれを行うことができることを知っていますが、それを理解することができませんでした.

4

2 に答える 2

1
sed '/Linux/{n;d;}'

(...また、回答には少なくとも 30 文字が含まれている必要があります。)

于 2013-03-20T18:51:27.140 に答える
0

もしかしてこれ?RTF ファイルを確認したところ、改行で行が区切られているように見えました。したがって、それらをレコード区切りとして使用し、1行を削除して、結果のファイルを読み取ることができ、行がなくなりました。他の状況で機能するかどうかはわかりません。機能するかどうかを徹底的にテストする必要があります。rtf ファイルは Unix/Linux では「有効な」テキスト ファイルではないため、awk を使用しました。おそらくsedそれはできないと思います..

awk 'n-->0{next} /Linux/{n=1}1' RS='\r' ORS='\r' infile.rtf > outfile.rtf

動作する場合は、「Linux」という単語のある行の下の行を破棄する必要があります。

于 2013-03-20T21:19:31.450 に答える