정보 목록이 포함된 파일이 있습니다. 각 행에는 12개 또는 13개의 필드가 있습니다. 예를 들어, 필드 3과 4가 포함된 파일을 사용하겠습니다.
e.g. myfile.txt
user password location date
john passwd1 new_york today
passwd2 london yesterday
jeff passwd3 new_york tomorrow
빈칸의 다음 줄에 John의 이름을 복사할 수 있는 방법을 찾고 있습니다.
지금까지 나는 다음과 같은 것을 시도하고 있습니다.
Awk '{{if(NF==4) print $0; name=$1}; if(NF==3) print $name,$0}' ./myfile.txt >> ./my_editedfile.txt.
그러나 시도할 때마다 $1 텍스트가 인쇄되거나 아무것도 인쇄되지 않거나 다음 줄의 첫 번째 필드가 두 번 인쇄됩니다. 즉, 두 번째 행은 아래와 같습니다.
$1 passwd2 london yesterday
passwd2 london yesterday
passwd2 passwd2 london yesterday
누군가 한 줄에 변수를 설정하고 이를 사용하여 다음 줄을 인쇄하는 데 도움을 줄 수 있습니까?
답변1
당신은 가깝습니다. 변수 앞에 쉼표나 $가 필요하지 않습니다. 노력하다:
awk '{if (NF == 4) {print $0; name=$1} else {print name$0}}'