簡體   English   中英

如何從文本文件BASH獲取單詞

[英]How to get word from text file BASH

我只想從此txt文件中獲取一個單詞: http : //pastebin.com/jFDu0Le5 這個詞來自最后一行: WER: 45.67% Correct: 65.87% Acc: 54.33%我只想獲取值: 45.67將其保存到文件value.txt ..我想創建BASH腳本來獲取該值。 能給我一個例子怎么做嗎??? 我是Bash的新手,上學需要它。 整個.txt文件保存為我的服務器上的文本文件file.txt

您需要grep“ WER:” value.txt | 切-???

我有 ??? 因為我不知道文件的結構。 制表符分隔? 固定寬度?

難道你會得到你需要的論據。

嘗試這個:

grep WER file.txt | awk '{print $2}' | uniq | sed -e 's/%//' > value.txt

請注意,每次您運行命令時,這將覆蓋value.txt。

如果格式如您所說,那么這也可以

awk -F'[: %]' '/^WER/{print $3}' file.txt > value.txt

說明

  • -F將字段分隔符指定為[: %]
  • /<PATTERN>/ {<ACTION>}指的是:如果一行匹配某些PATTERN,則執行一些ACTION
  • 就我而言
    • PATTERN是:以^開頭的字符串WER
    • ACTION是: print字段$3 (由-F字段分隔符分隔)
  • >將輸出發送到value.txt

有很多方法和工具可以完成此任務:

sed

tac file.txt | sed -n '/^WER: /{s///;s/%.*//;p;q}' > value.txt

awk

tac file.txt | awk -F'[ %]' '/^WER:/{print $2;exit}' > value.txt

重擊

while read a b c
do
    if [ $a = "WER:" ]
    then
        b=${b%\%*}
        echo ${b#* }
        break
    fi
done < <(tac file.txt) > value.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM