bash를 사용하여 파일에서 번호를 수집하려고합니다. 내 파일은 다음과 같습니다 :bash에서 보이지 않는 0131 번호
number = 123;
내가 그걸 얻기 위해 명령을 다음 사용
grep number file.txt | tr -dc 0-9
을 그리고 내가 얻을 것은 :
0131123
나는 다른 번호와 다른 방법 sed 's/[^0-9]//g'
을 시도했지만 항상 결과 0131 + my_number를 제공합니다. 이유가 무엇입니까?
UPDATE
귀하의 질문에 한 줄을 제외하고 아무것도 포함하지 않는 파일을 볼 수 있듯이
[email protected]:/tmp$ grep number file.txt
number = 123;
[email protected]:/tmp$ grep number file.txt | tr -dc 0-9
[email protected]:/tmp$
[email protected]:/tmp$ grep number file.txt | sed 's/[^0-9]//g'
0131123
[email protected]:/tmp$ cat file.txt
number = 123;
에 대한 답변을주기.
업데이트 2 개
antak에 의해 주어진 명령의 결과 및 Gordon Davisson
[email protected]:/tmp$ grep number file.txt | cat -v
^[[01;31m^[[Knumber^[[m^[[K = 123;
[email protected]:/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 매직 볼 수 있습니다,하지만 난 그것을에서 오는 아무 생각이 없습니다.
합니까에 대한 최대 - 투표를받을 자격이 생각''number'를 포함하는 다른 라인을 가지고 file.txt'? – fedorqui
아니요. 번호는이 파일에서 고유합니다. – nervosol
내가 이것을 시도 할 때, 나는 예상대로 '123'을 얻는다. 왜이 문제가 발생하는지 모르겠다 ... 나는 '0131'접두어가 스크립트의 다른 부분에 의해 생성 된 것으로 의심된다. – roky