0

[角かっこで囲まれた行末文字] のようなテキスト ファイルがあります。

ここでは明らかに何かがおかしいので、空の行を削除したいと思います。これどうやってするの?

私は bash ソリューションを好みますが、他のソリューションも歓迎します。

717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]
717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]
717018|2026494|67685|Sulfinyl bis(methane)|Carrier|NR||NR||NR|||NR||NR||NR||10% OF CARRIER SOLUTION[CR]
[CR][LF]
[CR][LF]
717019|2026494|57556|1,2-Propanediol|Carrier|NR||NR||NR|||NR||NR||NR||40% OF CARRIER SOLUTION[CR][LF]
717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]

これは機能しませんでした(理由はわかりません..):

sed -i '/^$/d' file.txt

更新 私の望ましい出力は

717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]
717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]
717018|2026494|67685|Sulfinyl bis(methane)|Carrier|NR||NR||NR|||NR||NR||NR||10% OF CARRIER SOLUTION[CR][LF]
717019|2026494|57556|1,2-Propanediol|Carrier|NR||NR||NR|||NR||NR||NR||40% OF CARRIER SOLUTION[CR][LF]
717016|2026493|88650639|Agridex|Carrier|NR||V/V||NR|||1||NR||NR||NR[CR][LF]

したがって、3 行目は [CR][LF] で終わり、4 行目と 5 行目は削除されます。

4

4 に答える 4

1

\rLF を表すために使用します。

sed '/^\r$/d' file

または、dos2unixファイルで実行して、改行を取り除きます。

于 2013-07-31T10:30:53.913 に答える
0

Notepad++ オファー (他の人も大歓迎です!):

SO17967892 の例

質問を明確にするために編集します。

最初に double [CR] を single に置き換えてから、編集、行操作、空行の削除を行います。

于 2013-07-31T10:38:08.217 に答える
0

試す:

grep "|" textfile.txt > output.txt

于 2013-07-31T10:47:23.680 に答える
0

この sed コマンドを試してください:

sed -i.bak '/^ *'$'\r''*$/d' file
于 2013-07-31T10:31:49.050 に答える