我正在尝试使用 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;
如您所见,文件除了一行之外不包含任何内容。
更新 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,但我不知道它是从哪里来的。