GNU/Linux >> Linux Esercitazione >  >> Linux

Esiste il comando inverso di taglio?

Mi piace usare il cut comando in Linux con il -c bandiera. Tuttavia, sono interessato a trovare un comando che faccia il set inverso di cut . In sostanza, dato l'input:

drwxrwxrwx 2 root root 4096 4096 4 20:15 bin
drwxrwxrwx 2 root root 4096 4096 4 20:15 Desktop

Vorrei vedere tutto tranne “4096 4 20:15”. Ecco l'output:

drwxrwxrwx 2 root root bin
drwxrwxrwx 2 root root Desktop

Voglio essere in grado di ritagliare letteralmente tra i caratteri xey, se ha senso.

Qualche idea? Non riesco a immaginare che sarebbe uno script difficile da scrivere, ma se esiste già un comando per esso, mi piacerebbe usarlo.

Risposta accettata:

Come altri hanno sottolineato, non dovresti analizzare l'output di ls . Supponendo che tu stia usando ls solo come esempio e analizzerà qualcos'altro, ci sono alcuni modi per fare ciò che vuoi:

  1. cut con -d e -f

    cut -d ' ' -f 1,2,3,4,9
    

    da 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
    

    Specificamente per ls è probabile che non riesca poiché ls cambierà la quantità di spazio bianco tra i campi consecutivi per allinearli meglio. cut tratta foo<space>bar e foo<space><space>bar diversamente.

  2. awk e le sue varianti dividono ogni riga di input in campi su uno spazio bianco in modo da potergli dire di stampare solo i campi che desideri:

    awk '{print $1,$2,$3,$4,$9}'
    
  3. Perl

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

Linux
  1. Perché l'utente root ha bisogno dell'autorizzazione Sudo?

  2. Come funziona il comando Tee?

  3. Come funziona il comando 'ls' in Linux/Unix?

  4. Il problema della mandria tonante esiste più su Linux?

  5. L'account root ha sempre UID/GID 0?

Cosa significa &alla fine di un comando Linux?

Il comando sed di Linux non modifica il file di destinazione

Cosa significa la sintassi |&nel linguaggio della shell?

In che modo il mio browser individua i root server DNS più vicini?

Cosa fa -e in un bash shebang?

Cosa costituisce un "campo" per il comando cut?