テキストの特定の行を抽出する

テキストから特定の行を抽出する方法です。
sedを使います。

/usr/share/dict/wordsに格納されている単語を行番号を指定して抽出したいと思います。

関数化しておきます。

d(){
> sed -ne "$1p" /usr/share/dict/words
> }

これで、d 引数で、辞書の単語が引っ張れるようになりました。
試してみます。

~$ d 5 
ABM's
~$ d 100
Adana
~$ 

それらしいものが表示されました。

では、活用してみます。
辞書の1行目から100行目までの単語をファイル名にして、
100個のファイルを生成したいと思います。

~$ for i in `seq 100`;do touch `d $i`;done
~$ ls
A        AZ's       Abel's       Abram's       Accra's      Acrux
A's      AZT's      Abelard      Abrams        Acevedo      Acrux's
AA's     Aachen     Abelson      Absalom       Acevedo's    Actaeon
AB's     Aaliyah    Abelson's    Abuja         Achaean      Acton
ABM's    Aaliyah's  Aberdeen     Abyssinia     Achaean's    Acts
AC's     Aaron      Aberdeen's   Abyssinia's   Achebe       Acuff
ACTH's   Abbas      Abernathy    Abyssinian    Achebe's     Acuff's
AI's     Abbasid    Abernathy's  Abyssinian's  Achernar     Ada
AIDS's   Abbott     Abidjan      Ac            Acheson      Ada's
AM's     Abbott's   Abidjan's    Ac's          Acheson's    Adam
AOL      Abby       Abigail      Acadia        Achilles     Adam's
AOL's    Abby's     Abilene      Acadia's      Achilles's   Adams
ASCII's  Abdul      Abner        Acapulco      Aconcagua    Adan
ASL's    Abdul's    Abner's      Acapulco's    Aconcagua's  Adan's
ATM's    Abe        Abraham      Accenture     Acosta       Adana
ATP's    Abe's      Abraham's    Accenture's   Acosta's
AWOL's   Abel       Abram        Accra         Acropolis
~$

辞書の上の方なので、Aから始まる名前ばかりでした。

コメント

タイトルとURLをコピーしました