Me gusta usar el cut comando en Linux con -c bandera. Sin embargo, estoy interesado en encontrar un comando que haga el conjunto inverso de cut . Esencialmente, dada la entrada:
drwxrwxrwx 2 root root 4096 4096 4 20:15 bin
drwxrwxrwx 2 root root 4096 4096 4 20:15 Desktop
Me gustaría ver todo excepto “4096 4 20:15”. Aquí está la salida:
drwxrwxrwx 2 root root bin
drwxrwxrwx 2 root root Desktop
Quiero poder cortar literalmente entre los caracteres x e y, si eso tiene sentido.
¿Algunas ideas? No puedo imaginar que sea un script difícil de escribir, pero si ya existe un comando para él, me encantaría usarlo.
Respuesta aceptada:
Como han señalado otros, no debe analizar la salida de ls . Suponiendo que está utilizando ls solo como ejemplo y analizaremos otra cosa, hay algunas formas de hacer lo que quieres:
-
cutcon-dy-fcut -d ' ' -f 1,2,3,4,9de
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 specifiedEspecíficamente para
lses probable que esto falle ya quelscambiará la cantidad de espacios en blanco entre campos consecutivos para que se alineen mejor.cuttratafoo<space>baryfoo<space><space>bardiferente. -
awky sus variantes dividen cada línea de entrada en campos en espacios en blanco para que pueda indicarle que imprima solo los campos que desee:awk '{print $1,$2,$3,$4,$9}' -
Perl
perl -lane 'print "@F[0 .. 3,8]"'