단어 목록이 있고 숫자만 포함된 각 텍스트 줄을 새 파일로 추출하고 싶습니다. 나는 무엇을 해야 합니까?
답변1
숫자만 포함된 행을 추출하려면 다음을 수행합니다.
$ grep -x '[0-9][0-9]*' words >digits
정규식은 [0-9][0-9]*
최소한 하나의 숫자가 포함된 모든 줄과 일치하며, -x
옵션에서는 grep
전체 줄이 주어진 식과 일치해야 합니다.
파일에 빈 줄이 없으면 으로 변경할 수 있습니다 grep -x '[0-9]*'
.
라인을 원하시면숫자, 알파벳 문자가 있는 줄을 제거합니다(일반 숫자에 대한 정규식을 구성하는 것보다 쉽습니다).
$ grep -v '[a-zA-Z]' words >numbers
두 변형 모두 POSIX 문자 클래스를 사용합니다.
$ grep -x '[[:digit:]][[:digit:]]*' words >digits
$ grep -v '[[:alpha:]]' words >numbers
고쳐 쓰다: 다음을 포함하는 행을 선택하려는 경우부동 소수점 숫자(확장) 정규식을 사용할 수 있습니다 ^[+-]?([0-9]*\.)?[0-9]+$
.
$ grep -x -E '[+-]?([0-9]*\.)?[0-9]+' words >floats
그것은 모두 우리가 찾고 있는 "숫자"에 따라 다릅니다.
답변2
by 문자가 포함된 줄을 삭제 sed
하고 출력을 다른 파일에 넣습니다.
sed '/[a-z]/Id' yourInputFile > yourOutputFile
또는 원본 파일을 그대로 변경하려면 다음을 수행하세요.
sed -i '/[a-z]/Id' yourInputFile