CSVから数値以外の行を削除する

CSVから数値以外の行を削除する

私は正規表現sedで使用する数値とcsv形式のみを許可しました。sed '/[^0-9, -, .]/d'それでも"_","1-0","1-1"心配なO / P特性があります。

sed 's/'"$(printf '\015')"'//g' ./abc.CSV | sed '/[^0-9, -, .]/d' 
1,090216002122,128,126,134,124,-0,00,220,28,292688,077,040911,0858,0159
1,090216002123,128,126,134,124, 000,00,_220,28,292688,077,040911,0858,0159
1,090216002125,128,126,134,124, 000,00,220,28,292688,077,040911,0858,170
1,090216002126,128,126,134,124, 000,-.00,220,28,292688,077,040911,0858,0159
1,090216002130,128,126,134,124, 000,00,220,28,292688,077,040911,0858,   
1,090216002134,128,126,134,124, 000,00,220,28,,077,040911,0858,0159
1,090216002135,128,126,134,124, 000,00,220,28,077,040911,0858,0159
11,090216002137,128,126,134,124, 000,00,220,28,292688,077,040911,0858,0159
1-1,090216002137,128,126,134,124, 000,00,220,28,292688,077,040911,0858,0159
1,000000000000,000,0,0,0,0,0,0,0,0,0,0,0,0
1,040216002137,128,126,134,124, 000,00,220,28,292688,077,040911,0858,0159
1,090216002137,128,126,134,124, 000,00,220,28,292688,077,040911,0858,0-1

私が試したことは、($9 ~ /^-?[0-9]+([.][0-9]+)?$/ )スペース番号付けでは機能しないようです。私も試しました

CSVファイルの数だけを解析する最良の方法は何ですか?ありがとうございます。

ベストアンサー1

コマンドを見てみましょう。

sed '/[^0-9, -, .]/d'

これが実際にすること:

文字を含むすべての行を削除します。とは別に次のように:

  • 数字(0-9)
  • カンマ
  • スペースからカンマまでのすべての文字 - アンダースコアとハイフンも含まれています。
  • 一定期間。

だから誰でもすべての文字以外の内容は削除されます。

これは何をすると思いますか?

わかりません。

おすすめ記事