GNU/Linux >> Tutoriales Linux >  >> Linux

¿Existe el Comando Inverso de Corte?

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:

  1. cut con -d y -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
    

    Específicamente para ls es probable que esto falle ya que ls cambiará la cantidad de espacios en blanco entre campos consecutivos para que se alineen mejor. cut trata foo<space>bar y foo<space><space>bar diferente.

  2. awk y 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}'
    
  3. Perl

    perl -lane 'print "@F[0 .. 3,8]"'
    

Linux
  1. ¿Qué significa el atributo 's' en los permisos de archivo?

  2. ¿Cómo funciona el comando Exit en una terminal Unix?

  3. ¿Cómo funciona el comando 'ls' en Linux/Unix?

  4. ¿Cómo calcula el comando stat los bloques de un archivo?

  5. ¿Qué hace la línea '!/bin/sh -e'?

El comando sed de Linux no cambia el archivo de destino

¿Qué significa la sintaxis |&en lenguaje shell?

¿La cuenta raíz siempre tiene UID/GID 0?

¿Qué significa el símbolo de la tubería de Linux? ¿hacer?

¿Qué hace la -e en un bash shebang?

¿Qué constituye un 'campo' para el comando de corte?