Вы думаете в правильном направлении:
Я пытаюсь создать условие (если столбцы 2 и 3 пусты, сделайте что-нибудь)
В частности,
awk
способов сделать это) Так, например,
awk -F, '$2=="" && $3=="" {pfx=$1; next} {print pfx "," $0}' file.csv
или более идиоматически с использованием переменной разделителя полей FS
awk -F, '$2=="" && $3=="" {pfx=$1; next} {$0 = pfx FS $0; print}' file.csv
или (поскольку действие по умолчанию - когда правило оценивается как истина или 1
- это распечатать запись)
awk -F, '$2=="" && $3=="" {pfx=$1; next} {$0 = pfx FS $0} 1' file.csv
John,bim,bam,boom
John,tim,tam,toom
John,lam,loom,lim
Mary,pam,pim,poom
Mary,dam,dim,doom
Строки без ruser записываются, если указанный пользователь недействителен в вашей системе (попробуйте сssh whateverthereisnot@localhost
).
Неизвестные имена пользователей обычно не записываются в журналы, поскольку они могут быть именами пользователей для другой системы (случайная попытка входа на неверный компьютер )или, что еще хуже, пароли (случайно введенные в поле имени пользователя ).