Extrayez toutes les lignes d'un file commençant par une séquence et puis le sortir dans un autre file

J'ai un file .csv avec des contenus similaires à ceci:

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 

Je veux saisir toutes les lignes qui commencent par BIHAR , puis le sortir vers un autre file csv séparé. Comment je fais ça?

J'ai essayé d'utiliser la fonction "Find All" de sublime, puis j'utilise la flèche vers la fin de la ligne pour les mettre en surbrillance. Malheureusement, certaines lignes sont beaucoup plus longues que les autres, donc ça ne fonctionne pas. Il y a environ 100'000 lignes dans le file .txt.

J'ai aussi essayé avec sed:

 sed -n 'BIHAR /myfile.txt' /newfile.txt 

EDIT: Pour une raison ou une autre, grep / sed / awk ignore les returns à la fin de chaque ligne, et par conséquent, il essaie uniquement de faire correspondre la première ligne et rien d'autre.

Essayez ceci avec GNU sed:

 sed -n '/^BIHAR/p' file > new_file 

ou avec grep:

 grep '^BIHAR' file > new_file 

ou avec awk:

 awk '/^BIHAR/' file > new_file 

grep

  grep ^BIHAR file > new_file 

awk

  awk '/^BIHAR/' file > new_file 

pedagogique awk

  awk -F, '$1 == "BIHAR" { print $0 ;} file > new_file 

edit: lorsque vous utilisez le file venant de Windows World, assurez-vous d'utiliser dos2unix pour convertir la fin de ligne

  dos2unix dosfile > unixfile