2016-07-29 4 views
0

私は以下の内容のファイルを持っています。ユナイテッドの角かっこから数字を抽出する方法

abc.[1-3].title 
simple.0[1-2].title 

私はを使用して、以下のよう出力をフェッチするために助けを必要はawkのコマンドをsedの。 sedの

abc.1.title 
abc.2.title 
abc.3.title 
simple.01.title 
simple.02.title 
+0

[私が編集した方法](http://stackoverflow.com/posts/38659612/revisions)を参照してください。コードやサンプルファイルの場合は、行を選択してCtrl + Kを押すと、このように表示されます。 – fedorqui

+0

確かに、今後これが続くでしょう。 – Sai

+0

これまでに試したことを見せていただければ幸いです。あなたはawkとsedでタグ付けされているので、少し知っている必要があります! – fedorqui

答えて

3

はすべてある個々の行に簡単な置換、ためのものです。その他の場合は、あなたの現在の問題は、あなたがawkのを使用する必要があります。

$ cat tst.awk 
BEGIN { FS="[][]" } 
{ 
    split($2,r,/-/) 
    for (i=r[1]; i<=r[2]; i++) { 
     print $1 i $3 
    } 
} 

$ awk -f tst.awk file 
abc.1.title 
abc.2.title 
abc.3.title 
simple.01.title 
simple.02.title 

はアーノルド・ロビンス著有効なawkプログラミング、第4版を、読んでください。

+1

ニース! 'split()'の呼び出しを防ぐために 'awk -F '[] [ - ]' {for(i = $ 2; i <= $ 3; i ++)print $ 1 i $ NF}の 'file'で遊んでいました。 – fedorqui

+1

最初の文について - ナンセンス! Sedはまたクインズを作るためのもので、コードゴルフやその他のエキサイティングな重要なアクティビティをプレイするためのものです! –

+1

@WilliamPursellあなたは正しいですか?私は精神的なエクササイズの面を完全に忘れていました:-)。私はまた、いくつかのsedスクリプトが天気を制御するかもしれないと思う... –

関連する問題