2016-07-18 14 views
0

最後のbashスクリプトからずっと時間がありました。 ファイルの内容をstart変数からstopに抽出しようとしています。bashスクリプトを使用してファイルの内容を抽出します。

./2014-11-02/18h/00mn/2014-11-02T18-00-00.048000-depth.jpg 
./2014-11-02/18h/00mn/2014-11-02T18-00-00.182000-depth.jpg 
./2014-11-02/18h/00mn/2014-11-02T18-00-00.316000-depth.jpg 

これは、これまでのコードです:

#! /bin/bash 
start=$(grep -n $1 night4.info | cut -d : -f 1) 
stop=$(grep -n $2 night4.info | cut -d : -f 1) 
echo "1" >> list.info 
sed -n -e "$start,$stop p" night4.info >> list.info 

そしてこの 私のソースファイルがnight4.infoであり、それは、このファイルの.JPG files.The構造のリストが含まれていますがに似ていますスクリプトを実行する方法は次のとおりです。

./script1.sh 2014-11-02T18-00-00.048000 2014-11-03T06-59-59.981000 

エラーメッセージは出力されず、正しい出力が得られません。

+3

あなたのソースファイルとは何ですか?あなたが抽出しようとしていることは何ですか?実際のファイルがなければ、問題は無意味です – Inian

+0

この問題を解決するには、問題を特定してください。 4行を貼り付ける代わりに、適切な出力が得られない旨を伝える代わりに、入力したもの、期待される出力、実際の出力とともに、期待通りのことをしないコードを見つけてください。悪いスクリプトを良い質問にする方法の例については、[bash tag wiki](http://stackoverflow.com/tags/bash/info)を参照してください。 –

答えて

1

あなたは範囲演算子でPerlのワンライナーを使用することができます。

perl -ne "print if /\Q$1\E/../\Q$2\E/" night4.info >> list.info 
+0

これは何をする予定ですか?それはすべてを印刷するように見える – 123

+0

それは働いています。しかし、もし私がbashスクリプトを修正できれば、私にとっては良いでしょう。ありがとう。 –

関連する問題