0

このような文字列があるとします

ここにいくつかのランダムな単語 25 ミリ秒

25 を抽出して、別のテキスト ファイルに入れたいと考えています。どうすればいいですか?

基本的に、各行には最初にいくつかの単語があり、最後に浮動小数点数があり、その後にmsが続きます。25 は例として挙げただけです。

4

5 に答える 5

2

awk最後から 2 番目のフィールドのみを印刷することにより、次のようになります。

$ awk '{print $(NF-1)}' <<< "Some random words here 25 ms" 
25

grep肯定的な先読みで:

grep -Po "[0-9.]+(?= ms)"  <<< "Some random words here 25 ms" 
25
于 2013-02-06T15:37:56.023 に答える
0

25はどこに行くべきですか?質問を終えましたか?

質問の現在のバージョンに基づいています。したがって、25はランダムではありません。ただ

echo "25" > another.file

25が乱数の場合、常にその行の終わりにあります。

grep -oE '[0-9]+$' <<<" Some random words here 25" > another.file

編集

grep -Po '\d+(?= ms)' <<<"Some random words here 25 ms" > another.file
于 2013-02-06T15:26:41.453 に答える
0
sed 's/[^0-9. ]*//g' input.txt > output.txt
于 2013-02-06T15:28:33.870 に答える
0

最後に ms がない行がある場合は、これも行うことができます

awk '$NF ~ /ms/{print $(NF-1)}' temp.txt

最後のフィールドがms

于 2013-02-07T01:31:54.333 に答える
0

の直前に、数字のみで構成される最後の単語 (オプションで小数点以下の桁数を含めることもできます) をスキャンしますms

sed 's/.* \([0-9.]*\) ms$/\1/' input.txt > output.txt
于 2013-02-06T15:33:07.190 に答える