我將Arduino傳感器的這些輸出值保存到這樣的文本檔案中
9 P2.5=195.60 P10=211.00
10 P2.5=195.70 P10=211.10
11 P2.5=195.70 P10=211.10
2295 P2.5=201.20 P10=218.20
2300 P2.5=201.40 P10=218.40
...
...
我想將每一列提取到它自己的文本檔案中。
預期輸出:3 個文本檔案Number.txt、P25.txt 和 P10.txt 其中
Number.txt 包含
9
10
11
2295
2300
P25.txt 包含
195.60
195.70
195.70
201.20
201.40
并且 P10.txt 包含
211.00
211.10
211.10
218.20
218.40
PS:檔案不止5行,所以代碼應該應用到每一行。
uj5u.com熱心網友回復:
您可以這樣做:
$ grep -Po '^[0-9.] ' data.txt > Number.txt
$ grep -Po '(?<=P2\.5=)[0-9.] ' data.txt > P25.txt
$ grep -Po '(?<=P10=)[0-9.] ' data.txt > P10.txt
^: 在行首斷言位置。[0-9.]盡可能匹配一個數字或一個點,在一次和無限次之間。(?<=): 正面回顧。P2\.5=: 匹配P2.5=。P10=: 匹配P10=。
-o:只列印匹配的部分。-P: Perl 風格的正則運算式。
uj5u.com熱心網友回復:
使用awk,它可以自己打開檔案而不是依賴標準輸出。
awk '{sub("P2.5=", "", $2);
sub("P10=", "", $3);
print $1 > "Number.txt";
print $2 > "P25.txt";
print $3 > "P10.txt"; }' data.txt
要么
awk '{print $1 > "Number.txt";
print substr($2, 6) > "P25.txt";
print substr($3, 5) > "P10.txt"; }' data.txt
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/440723.html
上一篇:設計模式之工廠模式
下一篇:為什么我的腳本在第一次操作后停止
