2011-09-14 5 views
1

私はUNIXシェルスクリプトの初心者です。私の目標は、 "--------"行の間にある一連の文字列を抽出し、各文字列を別々のファイルに格納することです。パターン間の文字列を抽出し、シェルスクリプトを使用して別のファイルに格納する

例: マイファイルmain.txtが

---------------------------- 
One 
two 
three 
---------------------------- 
abc 
four 
five 
----------------------------- 

予想される出力のようになります。ラインの間に登場 文字列 "----"

first.txt contains, 
one 
two 
three 

Second.txt contains, 
abc 
four 
five 
、などの異なるファイルに格納する必要があります

貴重なご協力をお願いします。事前に

おかげで、 スリカンス

+0

これは役に立ちますか? http://stackoverflow.com/questions/4217399/split-input-into-multiple-outputs-based-on-content – ajreal

答えて

1
i=0; file=$i.txt; cat tmp/t.txt |while read line; 
    do if [ "$line" = "----------------------------" ]; 
     then let "i=i+1"; file=$i.txt; continue; 
    fi; 
    echo "$line" >> $file; 
done 

はところで、私は唯一のインタラクティブな作品のためにシェルを使用しています。すべてのコーディングはPythonで行われます。

awkも使用できます。しかし、Python、Rubyを使うこともできます。

+0

提案をお寄せいただきありがとうございますが、それを抜粋している間にエラーが発生しています。 'line 4:[:too many arguments '。スクリプトは次のようになります。 '#!/ bin/bash i = 0; file = $ i.txt; cat temp1 | while readline do if [$ line == "---------------------]]; "i = i + 1"とする。 file = $ i.txt; continue fi echo "$ line" >> $ file done' – Srikanth

+0

私の答えは$ lineの代わりに "$ line"でした。 – guettli

関連する問題