Awk

如何grep方括號內的數據?

  • May 15, 2021

我的 .log 文件中有以下類型的數據:

Cell[BoxData["0.8693473380926441`"]
Cell[BoxData["100.40266203596555`"]
Cell[BoxData["23.338724857049048`"]
Cell[BoxData["0.25720321805387686`"]
Cell[BoxData["66.85236878385265`"]

我只想 grep 數字,例如:

0.8693473380926441
100.40266203596555
23.338724857049048
0.25720321805387686
66.85236878385265

我試過了,grep -Po '\[.*?]'但它只消除了一個括號。任何幫助將不勝感激。

awk對此更好:

awk -F '["`]' '{print $2}' file

這會將欄位分隔符設置為任"一或波浪號,然後列印第二列/欄位。

輸出:

0.8693473380926441
100.40266203596555
23.338724857049048
0.25720321805387686
66.85236878385265

我嘗試使用下面提到的命令並且工作正常

sed 's/.*\["//g' filename| sed 's/`"\]//g'

輸出

0.8693473380926441
100.40266203596555
23.338724857049048
0.25720321805387686
66.85236878385265

引用自:https://unix.stackexchange.com/questions/526641