https://stackoverflow.com/questions/5374239/tab-separated-values-in-awk#comment23678233_5376527 정확한 코드가 복사되었습니다.
echo "$line"
돌아올 것이다
LOAD_SETTLED LOAD_INIT 2011-01-13 03:50:01
지금
echo "$line" | awk '{print $1}'
LOAD_SETTLED 반환echo "LOAD_SETTLED LOAD_INIT 2011-01-13 03:50:01" | awk '{print $1}'
LOAD_SETTLED 반환echo "$line" | awk -v FS='\t' -v OFS='\t' 'BEGIN {OFS = FS} {$3 = var; print}'
전체 행을 반환합니다.echo "$line" | awk -v var="$mycol_new" -F'\t' 'BEGIN {OFS = FS} {$3 = var; print}'
전체 행을 반환합니다.
노트:전반적으로> LOAD_SETTLED LOAD_INIT 2011-01-13 03:50:01
문맥에 따르면 , LOAD_SETTLED
어디에서 잘못되었나요?
복사 중인 탭 구분 기호가 무엇인지 잘 모르겠습니다. Ctrl+Tab은 PowerShell에서 터미널 탭을 전환하기 위한 것이므로 WSL에 수동으로 탭을 삽입하는 방법을 모르겠습니다. 질문에서 $line을 복사했습니다.
응, 어쩌면 echo
그렇지 않을 수도 있어.
printf "LOAD_SETTLED\tLOAD_INIT\t2011-01-13 03:50:01\n" | awk -v FS='\t' -v OFS='\t' 'BEGIN {OFS = FS} {$3 = var; print}'
반품:
LOAD_SETTLED LOAD_INIT
printf "LOAD_SETTLED\tLOAD_INIT\t2011-01-13 03:50:01\n" | awk -v var="$mycol_new" -F'\t' 'BEGIN {OFS = FS} {$3 = var; print}'
반품:
LOAD_SETTLED LOAD_INIT
LOAD_SETTLED
왜 이제 두 개의 필드가 반환되는지 예상해야 합니다 .
원래의답변탭으로 구분된 문자열에서 첫 번째 열을 가져오는 것입니다. 첫 번째 열을 얻기 위해 복사를 시도했습니다. 하지만 이제 두 개의 열이 생겼습니다. 이것이 나의 혼란입니다.
업데이트: 문제가 해결되었습니다. 내 잘못.
답변1
어쩌면 echo가 이 목적에 적합한 도구가 아닐 수도 있습니다. 이것을 시도해 보십시오.
printf "LOAD_SETTLED\tLOAD_INIT\t2011-01-13 03:50:01\n"|awk '{print $1}'