분할 및 인쇄

분할 및 인쇄

50,000줄의 탭으로 구분된 텍스트 파일이 있습니다. 첫 번째 열을 분할하여 출력.txt에 표시된 대로 인쇄하고 싶습니다.

입력.txt

rt|371443144|mb|MN556661.1|  2200443     A
rt|371443344|mb|MN556645.1|  2594155     A
rt|371467899|mb|MN555666.1|  2594175     A

출력.txt

MN556661.1   2200443     A
MN556645.1   2594155     A
MN555666.1   2594175     A

답변1

또 다른 옵션 cut은 다음과 같습니다.

cut input.txt -d'|' -f4-5 --output-delimiter='' >> output.txt

그런데, 귀하의 질문에서 탭으로 구분되어 있다고 언급하셨는데 |여기에는 구분 기호로 넣었습니다.

답변2

cat input.txt | awk -F\| '{print $4      $5    $6}' >> output.txt

답변3

GNU sed를 사용하여 이 작업을 수행할 수 있습니다.

sed -r 's/([^|]+\|){3}//; s/\|//'

즉, 앞에 파이프가 있는 세 그룹을 삭제하고, 두 번째 교체 명령은 네 번째 필드 뒤의 파이프를 삭제합니다.

관련 정보