我有一個文件'records.txt',其中包含超過200,000條記錄。計數沒有。在Unix中的一個文件中的分隔符行
每條記錄位於一個單獨的行中,並具有多個由分隔符「|」分隔的字段。
每行應該有35個字段,但問題是這些行中的一個具有<> 35個字段,即<> 35'|'字符。
有人可以請在Unix中提出一種方法,通過它我可以識別該行。 (例如獲取計數「|」在文件中的字符每行中)
我有一個文件'records.txt',其中包含超過200,000條記錄。計數沒有。在Unix中的一個文件中的分隔符行
每條記錄位於一個單獨的行中,並具有多個由分隔符「|」分隔的字段。
每行應該有35個字段,但問題是這些行中的一個具有<> 35個字段,即<> 35'|'字符。
有人可以請在Unix中提出一種方法,通過它我可以識別該行。 (例如獲取計數「|」在文件中的字符每行中)
試試這個:
awk -F '|' 'NF != 35 {print NR, $0} ' your_filefile
這個小perl腳本應該這樣做:
cat records.txt | perl -ne '$t = $_; $t =~ s/[^\|]//g; print unless length($t) == 35;'
這是通過刪除所有字符除了的|,然後計數剩下什麼。
沒用使用這裏檢測到的貓... – Keltia 2009-01-14 11:21:03
格雷格的使用bash的東西的方式,這場舞會的朋友那裏:)
while read n; do [ `echo $n | tr -cd '|' | wc -c` != 35 ] && echo $n; done < records.txt
+1,U打敗我由24secs :) :) – 2009-01-14 10:10:52
Heh。我喜歡這個:) – 2009-01-14 10:13:56