cut
다음은 입력을 필드로 나누고 두 번째 필드를 가져오기 위해 공백 구분 기호를 사용하는 예입니다.
cut -f2 -d' '
구분 기호를 공백 대신 탭으로 정의하려면 어떻게 해야 합니까?
답변1
두 가지 방법:
Ctrl+를 누르고 Verbatim을 사용하십시오 V.Tab참조 삽입.
cut -f2 -d' ' infile
아니면 이렇게 써서 사용하세요ANSI-C 인용문:
cut -f2 -d$'\t' infile
따옴표 형식 $'...'
은 POSIX 쉘 언어(아직 아님), 그러나 Bash 외에도 최소한 ksh, mksh, zsh 및 Busybox에서도 작동합니다.
답변2
탭이 기본값입니다.
보다컷 매뉴얼 페이지.
-d delim
Use delim as the field delimiter character instead of the tab
character.
그래서 당신은 쓸 수 있습니다
cut -f 2
답변3
awk -F '\t' '{ print $2 }' inputfile
그러면 각 입력 줄의 두 번째 탭으로 구분된 필드가 추출됩니다 inputfile
.
답변4
또는 cut을 함수로 래핑할 수도 있습니다.
function getColumns ()
{
local -r delimiter="${1:?}"
local -r columns="${2:?}"
if [[ "$delimiter" == '\t' || "$delimter" == "tab" ]]; then
cut "--fields=${columns}"
return
fi
cut "--delimiter=${delimiter}" "--fields=${columns}"
}