-1
52,000行の.CSVファイルがあります。各行には区切り文字 '|'で区切られた13個の列があります。 11行目に不正なデータが挿入されているため、ファイル内に新しい改行文字が挿入されています。私はそれらを削除するはずです。50,000行以上の.CSVファイルで改行文字を削除する必要があります。 linuxコマンドが必要です。
52,000行の.CSVファイルがあります。各行には区切り文字 '|'で区切られた13個の列があります。 11行目に不正なデータが挿入されているため、ファイル内に新しい改行文字が挿入されています。私はそれらを削除するはずです。50,000行以上の.CSVファイルで改行文字を削除する必要があります。 linuxコマンドが必要です。
これを試すことができます。
awk -F '|' -v fields=13 '{c+=NF; s=(s?s OFS:"") $0} c>=fields{print s; s=""; c=0}' yourfile.csv
[email protected]:/tmp$cat test
1|2|3|4|5|6|7|8|9|10|11|12|13
1|2|3|4|5|6|7|8|9|10|11|12|13
1|2|3|4|5|6|7|8|9|10|11|12|13
1|2|3|4|5|6|7|8|9|10|11
|12|13
1|2|3|4|5|6|7|8|9|10|
11|12|13
[email protected]:/tmp$ awk -F"|" -v fields=13 '{f+=NF; str=(str?str OFS:"") $0} f>=fields{print str; str=""; f=0}' test
1|2|3|4|5|6|7|8|9|10|11|12|13
1|2|3|4|5|6|7|8|9|10|11|12|13
1|2|3|4|5|6|7|8|9|10|11|12|13
1|2|3|4|5|6|7|8|9|10|11 |12|13
1|2|3|4|5|6|7|8|9|10| 11|12|13
その文字列に改行文字はありません。 'echo -e'で試してみてください。 – Kusalananda
こんにちはKiranさん、歓迎されるStackoverflow!もっと情報をお願いします。これまでに何を試みましたか?良い質問をするには良い方法です:http://stackoverflow.com/help/how-to-ask – Jurik
Linuxでは、ファイルのすべての行に最後に改行文字があります。あなたは、削除したい改行をより具体的にすることができますか? –