Como outros apontaram, você não deve analisar a saída de ls
. Supondo que você esteja usando ls
apenas como exemplo e esteja analisando outra coisa, existem algumas maneiras de fazer o que você deseja:
-
cut
com-d
e-f
cut -d ' ' -f 1,2,3,4,9
de
man cut
:-d, --delimiter=DELIM use DELIM instead of TAB for field delimiter -f, --fields=LIST select only these fields; also print any line that contains no delimiter character, unless the -s option is specified
Especificamente para
ls
, isso provavelmente falhará, poisls
mudará a quantidade de espaço em branco entre campos consecutivos para torná-los mais alinhados.cut
tratafoo<space>bar
efoo<space><space>bar
de forma diferente. -
awk
e suas variantes dividem cada linha de entrada em campos no espaço em branco, para que você possa dizer para imprimir apenas os campos desejados:awk '{print $1,$2,$3,$4,$9}'
-
Perl
perl -lane 'print "@F[0 .. 3,8]"'