Синтаксис не проверен и не исследован, поэтому я понятия не имею, что он делает и работает. Я только что переформатировал однострочник как автономный сценарий awk и добавил несколько пробелов, чтобы улучшить читаемость. Если исходный однострочный сработал, это тоже должно быть. если нет, то не будет.
#! /usr/bin/awk -f
BEGIN {FS=OFS=";"}
NR==FNR {
for(i=2;i<=7;i++) if($i!="\"\"") a[$1]=a[$1] FS $i;
next
}
{
n=split(a[$1],f,FS);
if(n>7)n=7;
for(i=2;i<=n;i++) $i=f[i]
}
1
Сохраните его в файл (например, myscript.awk
), сделайте его исполняемым ( chmod + x myscript.awk
) и запустите как:
./myscript.awk csv{,}
Nunca me di cuenta de lo que estaba causando esto. Logré resolver esto solo mediante el enfoque de fuerza bruta de crear un nuevo directorio $HOME para el usuario afectado, y luego iniciar sesión como ese usuario y reconfigurar manualmente el entorno:
x
[root]# cd /home
[root]# cp -a /etc/skel /home/username
[root]# chown -R username /home/username
[root]# chgrp -R username /home/username