특정 문자가 포함된 줄을 복사하여 새 파일에 붙여넣습니다.

특정 문자가 포함된 줄을 복사하여 새 파일에 붙여넣습니다.

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

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

관련 정보