O AWK é um interpretador baseado em linguagem de programação . Eles tendem a suportar a leitura e gravação de arquivos.
A mágica aqui é:
-
NF : número de campos em cada arquivo (o espaço é o delimitador padrão)
-
i : variável de usuário
-
$ i : construído na variável de campo $ 1 ... $ NF ($ 0 é linha inteira)
-
"coluna" i : o operador padrão para strings é concatenate (não é necessário "a" + "b" ou "a". "b")
-
> arquivo : redirecionamento de saída
E.G:
$ ll
total 140
drwxr-xr-x 2 jaroslav jaroslav 4096 Mar 16 07:11 answers
drwxr-xr-x 3 jaroslav jaroslav 4096 Dec 7 12:38 diff
-rw-r--r-- 1 jaroslav jaroslav 214 Dec 7 12:38 diff.tar.gz
-rw-r--r-- 1 jaroslav jaroslav 700 Apr 5 02:37 fonts.sh
-rw-r--r-- 1 jaroslav jaroslav 4 Apr 5 15:52 hai
-rw-r--r-- 1 jaroslav jaroslav 0 Mar 19 05:06 moo
-rw-r--r-- 1 jaroslav jaroslav 10240 Dec 7 12:08 moo.tar
-rw-r--r-- 1 jaroslav jaroslav 23147 Mar 16 08:29 ob.rc.xml
drwxr-xr-x 3 jaroslav jaroslav 4096 Mar 16 03:08 rename
drwxr-sr-x 2 jaroslav games 4096 Mar 19 05:07 setgid
drwxr-xr-x 2 jaroslav jaroslav 69632 Mar 11 00:42 times
-rw-r--r-- 1 jaroslav jaroslav 92 Mar 11 00:14 while
drwxr-xr-x 4 jaroslav jaroslav 4096 Mar 22 00:15 wkhtmltoimage
$ ls -l | awk '{
for (i=1; i<=NF; i++) {
file="column" i;
print $i > file
}
}'
$ cat column9 | column
answers fonts.sh moo.tar setgid wkhtmltoimage
diff hai ob.rc.xml times
diff.tar.gz moo rename while
$ cat column1 | column
total -rw-r--r-- -rw-r--r-- drwxr-xr-x -rw-r--r--
drwxr-xr-x -rw-r--r-- -rw-r--r-- drwxr-sr-x drwxr-xr-x
drwxr-xr-x -rw-r--r-- -rw-r--r-- drwxr-xr-x