쉘 스크립트를 사용하여 숫자 행을 열에 넣습니다.

쉘 스크립트를 사용하여 숫자 행을 열에 넣습니다.

다음과 같은 줄이 많은 파일이 있습니다.

1 jfkdajfd   1 2 3 5
2 fkldfjld   
3 fdkfloaf   9 10
4 fldfldkf 
5 fdskf;ak   12 1 4

나는 모든 숫자를 가져와서 파일의 한 열에 넣고 싶습니다.

 1
 2
 3
 5
 9
 10
 12
 1
 4

어떻게 해야 하나요? 감사해요

답변1

노력하다

awk '{ for (i = 1; i <= NF; i++) if ($i + 0 == $i) print $i }' < input > output

유효한 숫자 x + 0 == x인지 테스트 한 다음 원래 문자열을 인쇄하는 데 사용합니다 . 숫자(부동 소수점 숫자, 음수 및 많은 구현에서 16진수 포함)를 원하는지 또는 다른 숫자를 원하는지는 사용자에게 달려 있습니다 .xawkawk

답변2

어때요?

tr -cs 0-9 '[\n*]' < input | grep . > output

관련 정보