2012-04-13 2 views
0

ファイルminimumThickness * .kからいくつかのデータを抽出し、それをファイルresults.txtに入れたいとします。 ファイルmimimumThickness * .kは、最初の行に2つの値しかありません。ファイルからデータを抽出し、sedを使用してlinuxのターゲットファイルに追加します

ファイルminimumThickness.kは

mimimumThickness1.k 
mimimumThickness2.k 
mimimumThickness3.k 
. . . 
. . . 
mimimumThickness100.k 

のような1から百まで一連のファイル、私はそれを行うには、次のコマンドを使用しますが成功しなかったです。

sed -n '/^[0-9.]*$/w results.txt' minimumThickness*.k 

私も

for loop of i over 1 to hundred 

thickness=´cat minimumThickness$i.k | {print $1} ' | bc` 
echo $thickness 
thickess >> results.txt 

を使用することができます親切にSEDに問題を教えたり、私にSEDを使用してのより良い方法を提案します。それはどんなelegentメソッドにも感謝します。

お待ちしております。

答えて

0

[0-9。] *はいずれとも一致するため、予期した結果が表示されないことがあります。 [0-9] * \。[0-9] *を試して、ダブルスを得ることができます(いくつかの変更を加えて)。

+1

'[0- 9.] 'すべてが一致しません:' echo '0123asdf ...' | sedの/ [0-9。] // g''が 'asdf'を出力する – huon

+0

' -n'オプションがそれを壊しています(例えば 'echo '0123asdf ...' | sed -n 's/xyz // g ''は何も印刷しません)。それなしで試してみてください。 – huon

+0

>猫p1.txt ハロー ハイ 世界 >猫p2.txt 地獄 ギャグ 9.9 >のsed -n '/[0-9.]*/w output.txtと' * .txtの >猫こんにちは output.txtと違うものである 海 世界 地獄 ギャグ 9.9 – Chaitanya

0

あなただけの各ファイルの最初の行が必要な場合:

head -n 1 minimumThickness*.k > results.txt 
0

これは(GNU SED)あなたのために働くかもしれない:

sed -sn '1w results.txt' minimumThickness*.k 

または

head -qn1 minimumThickness*.k > results.txt 
関連する問題