각 항목이 다음과 같은 테이블이 있습니다.
coagulation factor VIII-associated 1 /// coagulation factor VIII-associated 2 /// coagulation factor VIII-associated 3
사용하고 싶지만 cut -d/// -f2 myfile.txt
오류가 발생합니다.
잘라내기: 잘못된 구분 기호
구분 기호 주위에 작은따옴표나 큰따옴표를 사용할 때도 마찬가지입니다.
cut -d'///' -f2 myfile.txt
cut -d"///" -f2 myfile.txt
어떻게든 슬래시를 피해야 합니까? 그렇다면 컷의 이스케이프 문자는 무엇입니까? 문서에는 해당 정보가 없는 것 같습니다. \를 시도해 보았습니다.
답변1
구분 기호가 다음과 같은 경우하나의 고정 문자를 제외한 모든 것, 그럼 cut
그렇지잘못된도구.
대신 사용하십시오 awk
.
세 가지 필드가 있는 이 테스트 파일을 고려해 보세요.
$ cat file
one///two/2//two///three
두 번째 필드와 두 번째 필드만 인쇄하려면:
$ awk -F/// '{print $2}' file
two/2//two
답변2
다른 답변은 괜찮지만 cut
필요에 따라 현재 구분 기호를 바꿔 사용할 수도 있습니다. 예를 들면 다음과 같습니다.
sed "s/\/\/\//\//g" myfile.txt | cut -d/ -f2
답변3
구분 기호는 다음과 같습니다.cut
항상 단일 문자이므로 "///"를 구분 기호로 지정할 수 없습니다.
대신 "/"를 구분 기호로 사용하고 추가 필드 수를 계산할 수 있습니다.
cut -d/ -f4 myfile.txt
(필드 2와 3은 "///"의 슬래시 사이에 있는 빈 필드입니다.)