문자열 예
blah:blah:example - 1234
blah1:blah2:example2 - 3213
콘텐츠가 존재하는지 확인하고 싶습니다.
- 1234
하지만 숫자는 다를 수 있습니다
나는 내가 사용할 수 있다는 것을 안다
awk -F: '$3 ~ / - /'
"-"가 있는지 확인하십시오. 그러나 숫자 가능성을 적용하는 방법은 무엇입니까?
답변1
기본적으로 "-" 뒤에 숫자가 있는지 확인하고 싶습니까?
하고 싶으시면 이렇게 쓰시면 됩니다
awk -F: '$3 ~ / - [0-9]+/'
더욱 발전된 솔루션
마지막 숫자에 가능한 값의 배열(예: 1, 2, 3, 4, 5)이 있는 경우 다음과 같이 작성할 수 있습니다.
values=(1 2 3 4 5)
awk -v vals="$(echo ${values[@]})" \
'{if(match(vals,$3" ")){print $0}}' input_file.txt
이렇게 하면 지정한 배열 input_file.txt
의 마지막 숫자가 있는 항목 만 인쇄됩니다.values
답변2
다음 명령은 끝에서 두 번째 공백으로 구분된 열에 a 를 포함하고 마지막 공백으로 구분된 열에 양의 정수를 포함하는 모든 행을 표시합니다 awk
.file
-
awk '$(NF-1) == "-" && $NF ~ /^[0-9]+$/' file
다음 grep
명령은 동일한 작업을 수행합니다.
grep -E -e '-[[:space:]]+[0-9]+$' file
패턴의 수정자를 -E
이해하는 데 필요하며 패턴의 수정자를 명령줄 옵션으로 해석하는 것을 중지해야 합니다(명령줄 옵션의 끝을 나타내는 교체로 변경될 수도 있음).+
-e
grep
-
-e
--