次のような内容を含む.csvファイルがあります。
BIHAR,PURNIA,DAGARUA,BELGACHHI,BELGACHHI,KARBOLA TOLA,0,0,312,0,0,312,Fully Covered,NO,NO,01_04_2010,241656,312,2123,910,1811.5
BIHAR,PURNIA,SRINAGAR,THARI,THARI,ARBANNA,0,0,312,0,0,312,Fully Covered,NO,NO,01_04_2010,244374,312,2123,910,1811.5
BIHAR,PURNIA,RUPAULI,DHOBGIDHA-RUPAULI,DHOBHGIDHA-RUPAULI-II,MATELI,0,0,312,0,0,312,Fully Covered,NO,NO,01_04_2010,243748,312,2123,910,1811.5
ETCETC,PURNIA,KRITYANAND NAGAR,CHUNAPUR,BANBHAG,BANGALI TOLA KOSHI KINARA,0,0,312,0,0,312,Fully Covered,NO,NO,01_04_2010,242663,312,2123,910,1811.5
BIHAR
開始するすべての行をつかみ、別の別のcsvファイルに出力したいと思います。どうすればいいですか?
Sublimeの「すべて検索」機能を使用してから、右矢印を使用して線の端を指して強調表示してみましたが、残念ながら一部の線は他の線よりはるかに長く、機能しません。 .txtファイルには約100,000行があります。
私もsedを使ってみました。
sed -n 'BIHAR /myfile.txt' /newfile.txt
編集:何らかの理由でgrep / sed / awkは各行の末尾の改行を無視するので、最初の行だけを一致させようとし、他のものは何もしません。この問題をどのように解決できますか?
答え1
GNU sedを使ってこれを試してください:
sed -n '/^BIHAR/p' file > new_file
またはgrepを使用してください。
grep '^BIHAR' file > new_file
またはawkを使用してください:
awk '/^BIHAR/' file > new_file
答え2
グレブ
grep ^BIHAR file > new_file
アッ
awk '/^BIHAR/' file > new_file
賢い愚かさ
awk -F, '$1 == "BIHAR" { print $0 ;} file > new_file
編集:Windowsの世界のファイルを扱うときは、dos2unixを使用して行末を変換します。
dos2unix dosfile > unixfile