거기에 라이징 캐릭터가 있나요 awk
? 나는 다음과 같은 것을 발견했습니다.여기하지만 작동하지 않습니다.
다음의 경우:
97
ARE
3
NL
1303
1
140
USA
기록이 숫자가 아닌 경우 다음과 같이 인쇄해야 합니다.
97,ARE
3,NL
1303
1
140,USA
답변1
커서를 이동하려고 시도하는 것보다 프로그래밍 방식으로 이 문제를 처리하는 것이 더 낫다고 생각합니다.
awk '/^[[:digit:]]+$/ { if (length(prev) > 0) { print prev }; prev = $0 } !/^[[:digit:]]+$/ { print (length(prev) > 0 ? prev : "") "," $0; prev = ""} END { if (length(prev) > 0) { print prev } }'
원하는 출력이 생성됩니다. 이전 줄을 기억하고 prev
다음 줄에 숫자 내용이 있는지 여부에 따라 단독으로 인쇄하거나 쉼표와 현재 줄을 함께 인쇄합니다.
다음은 이해하기 쉽도록 형식화된 Awk 부분입니다.
/^[[:digit:]]+$/ {
if (length(prev) > 0) {
print prev
}
prev = $0
}
!/^[[:digit:]]+$/ {
print (length(prev) > 0 ? prev : "") "," $0
prev = ""
}
END {
if (length(prev) > 0) {
print prev
}
}
정말로 캐릭터 레벨을 올리고 싶다면 확인해 보세요.tput
그리고terminfo
이스케이프 시퀀스:
tput cuu1
커서를 한 줄 위로 이동합니다.