私の.logファイルには次の種類のデータがあります。
Cell[BoxData["0.8693473380926441`"]
Cell[BoxData["100.40266203596555`"]
Cell[BoxData["23.338724857049048`"]
Cell[BoxData["0.25720321805387686`"]
Cell[BoxData["66.85236878385265`"]
たとえば、数字を探したいと思います。
0.8693473380926441
100.40266203596555
23.338724857049048
0.25720321805387686
66.85236878385265
試してみましたが、grep -Po '\[.*?]'
ブラケットは1つだけ取り外されました。どんな助けでも大変感謝します。
答え1
awk
より良い点は次のとおりです。
awk -F '["`]' '{print $2}' file
フィールド区切り記号を"
チルダまたはチルダに設定し、2番目の列/フィールドを印刷します。
出力:
0.8693473380926441
100.40266203596555
23.338724857049048
0.25720321805387686
66.85236878385265
答え2
grepを使って、自分が本当に欲しいものが何であるかを学びましょう。あなたが望むのは数字だけです。数字、ピリオド、数字が必要です。
egrep '[0-9]+\.[0-9]+' -o foo.txt
-o
「全行ではなく一致する部分だけを印刷してください」とされています。
答え3
以下のコマンドを試してみましたが、うまくいきました。
sed 's/.*\["//g' filename| sed 's/`"\]//g'
出力
0.8693473380926441
100.40266203596555
23.338724857049048
0.25720321805387686
66.85236878385265
答え4
例外ではないトピックに関する質問に誰もが答える機会があります。 "[nnn]"の数を取得するためにawkを使用しようとしていますが、動作しているawk -F'\[' '{print $2}' | awk -F'\]' '{print $1}’
間は本当に見苦しいようです。試してみました-F’[[]]’
が、-F’[\[\]]’
何も動作しませんでした。