ファイルから特定のシーケンスで始まるすべての行を抽出し、別のファイルに出力します。

ファイルから特定のシーケンスで始まるすべての行を抽出し、別のファイルに出力します。

次のような内容を含む.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

おすすめ記事