2011-12-04 11 views
3

私はBashスクリプトの初心者です。私はmenulist.txtに記載されている一連のステーションからオプションを選択するにはBashのメニューを構築しようとしている:メニューファイルを作成し、そこからbashメニューリストを作成する

$ cat menulist.txt 
Some text to be removed 
001A Station1 115 ABC 
More text 
011C Station2 115 CDE 
033F Station3 115 FGH 
Even more text, hundreds of lines, some are stations 
(...) 

問題は、私が最初にこのファイルからランダムなテキストのいくつかの行を削除する必要があり、唯一の駅ラインを保つあります(001A,011Cなど)

これは大きなファイルです(テキストの消去後に500を超えるオプション)。メニューダイアログからの答えは、ステーションコード、001Aまたは011Cまたはその他のものでなければなりません。

誰かがこれにアプローチする方法に関する一般的なガイダンスを提供してもらえますか?

+1

'grep Station menulist.txt'は必要な行だけを提供しますか? – sarnold

+1

まあ、そうです;より正確には、駅リストの例です:ftp://uhslc.soest.hawaii.edu/rqds/atlantic/atlantic.lst私は2番目の列に焦点を当てて、 grep xxx atlantic.lst 'ありがとう。 – user974722

答えて

2

それ以外の場合は、正規表現に慣れておく必要があります。^[0-9][0-9][0-9][A-Z]のようなものはおそらくより正確にあなたのニーズに合っています。