다음과 같은 파일이 있습니다.
Cx 100 350
C 110 320
Cn 300 250
Cb 200 280
Cx 300 210
Bash 스크립트를 사용하여 "Cx" 및 "Cn" 문자가 포함된 특정 줄을 선택하고 새 파일에 붙여넣는 방법에 대한 조언을 받고 싶습니다.
답변1
사용 grep
:
grep '^C[nx]' file >newfile
그러면 다음 줄이 선택됩니다.시작문자열을 사용 Cn
하거나 Cx
이 줄을 newfile
.
Cxx
예를 들어 또는 로 시작하는 줄을 선택합니다 Cn!
.
사용 awk
:
awk '$1 == "Cn" || $1 == "Cx"' file >newfile
정규식 일치 대신 문자열 비교가 수행됩니다. 공백으로 구분된 첫 번째 열이 Cn
있거나 Cx
다른 내용이 없는 행만 통과합니다 .
답변2
perl -MList::MoreUtils=any -lane '
print if any { $F[0] eq $_ } qw/Cx Cn/;
' input.txt
여러 값에서 첫 번째 진실 진술을 선택하는 루틴에 액세스하려면 List::MoreUtils 모듈을 로드합니다. 확인할 첫 번째 필드를 추가/수정하려는 경우 제공된 솔루션을 확장할 수 있습니다.
위 모듈을 찾을 수 없으면 다음 코드를 사용할 수 있습니다.
perl -lane 'for my $e ( qw/Cx Cn/ ) { print,last if $F[0] eq $e }' input.txt