awk를 사용하여 두 줄 뒤에 새 단어를 인쇄하는 방법

awk를 사용하여 두 줄 뒤에 새 단어를 인쇄하는 방법

사용하는 파일에서 두 줄 뒤에 빈 줄을 삽입해야 합니다.

cat rat     hat
pot NOT     lot
big big     big
sit sit     sit
awk '{print};(NR%2==0){print ""}'
cat rat     hat
pot NOT     lot

big big     big
sit sit     sit

실제로 내 주요 목표는 두 줄마다 새 단어를 삽입하는 것이지만 이해할 수 없습니다.

세 번째 열의 다른 파일에 <= 6000개의 이름이 있고 심지어 이 열에도 .(점)만 있는 이름이 거의 없기 때문에 어떻게 해야 합니까?

둘째, 마지막 줄 뒤에 빈 줄을 원하지 않습니다.

답변1

두 행마다 고정 WORD를 삽입하면 완벽해 보입니다.

awk '{print}
     (NR%2==0){printf "WORD\n"}'

마지막 행을 삽입하지 않는 것이 좋습니다.

awk 'NR>2 && (NR%2==1) {printf "WORD\n"}
 { print ; }' 

행의 열 수는 중요하지 않습니다.

추측일 뿐이지만, 정해져 있는 단어는 아닌가요? 한 줄? 마지막 하나?

awk 'NR>2 && (NR%2==1) {printf "%s\n",last}
 { print ; last=$NF ; }' 

그러면 다른 모든 줄의 마지막 단어가 인쇄됩니다.

$NF세 번째를 얻으 려면 교체하십시오 $3.

프로그램을 만드는 것은 단순한 코드가 아니라, 달성하려는 목표를 다른 사람(그리고 자신)에게 설명할 수 있는 것입니다.

답변2

awk를 사용하면 줄 번호가 짝수일 때 새 단어를 인쇄할 수 있습니다.

awk '{{print $0}if(NR%2==0)print "word"}' 

관련 정보