bash を使用してファイルから数値を収集しようとしています。私のファイルは次のようになります。
number = 123;
次のコマンドを使用して取得します。
grep number file.txt | tr -dc 0-9
そして、私が得るものは次のとおりです。
0131123
さまざまな番号とさまざまな方法を試しsed 's/[^0-9]//g'
ましたが、結果は常に 0131+my_number になります。理由はありますか?
アップデート
質問への回答
user@domain:/tmp$ grep number file.txt
number = 123;
user@domain:/tmp$ grep number file.txt | tr -dc 0-9
0131123user@domain:/tmp$
user@domain:/tmp$ grep number file.txt | sed 's/[^0-9]//g'
0131123
user@domain:/tmp$ cat file.txt
number = 123;
ご覧のとおり、ファイルには 1 行しか含まれていません。
更新 2
antakとGordon Davissonによって与えられたコマンドの結果
user@domain:/tmp$ grep number file.txt | cat -v
^[[01;31m^[[Knumber^[[m^[[K = 123;
user@domain:/tmp$ hexdump -C file.txt
00000000 6e 75 6d 62 65 72 20 3d 20 31 32 33 3b 0a |number = 123;.|
0000000e
cat -v
マジック 0131 が見えた後、どこから来たのかわかりません。