awk, 분할 후 인쇄를 사용하려고 하는데 오류가 발생합니다.
입력하다:
id day userId itemId
1 12/1/17 8:32 2232 tv
2 1/12/18 10:18 3232 fdfs
3 2/9/18 10:50 232 fdsf
4 3/6/18 12:35 345456 fdg
예상 출력
id datetime monthyear time userId itemId
1 12/1/17 8:32 12/17 8:32 2232 tv
2 1/12/18 10:18 1/18 10:18 3232 fdfs
3 2/9/18 10:50 2/18 10:50 232 fdsf
4 3/6/18 12:35 3/18 12:35 345456 fdg
답변1
어때요?
awk -F"\t" '
NR == 1 {$2 = "datetime" OFS "monthyear" OFS "time"
}
NR > 1 {split ($2, T, "[/ ]")
$2 = $2 OFS T[1] "/" T[3] OFS T[4]
}
1
' OFS="\t" file
id datetime monthyear time userId itemId
1 12/1/17 8:32 12/17 8:32 2232 tv
2 1/12/18 10:18 1/18 10:18 3232 fdfs
3 2/9/18 10:50 2/18 10:50 232 fdsf
4 3/6/18 12:35 3/18 12:35 345456 fdg
답변2
RudiC에서는 파일 변환 방법을 보여줍니다. 동일한 파일에 다시 저장하려면:
GNU awk 사용:
gawk -i inplace '...' file
사용
sponge
moreutils
패키지 에서 :awk '...' file | sponge file
아니면 임시 파일을 사용하세요
tmp=$(mktemp) awk '...' file > "$tmp" && mv "$tmp" file