GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gibt es den umgekehrten Schnittbefehl?

Ich verwende gerne den cut Befehl unter Linux mit dem -c Flagge. Ich bin jedoch daran interessiert, einen Befehl zu finden, der die umgekehrte Menge von cut ausführt . Im Wesentlichen angesichts der Eingabe:

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

Ich möchte alles außer sehen „4096 4 20:15“. Hier ist die Ausgabe:

drwxrwxrwx 2 root root bin
drwxrwxrwx 2 root root Desktop

Ich möchte in der Lage sein, buchstäblich zwischen den Zeichen x und y auszuschneiden, wenn das Sinn macht.

Irgendwelche Ideen? Ich kann mir nicht vorstellen, dass es ein schwer zu schreibendes Skript wäre, aber wenn es bereits einen Befehl dafür gibt, würde ich ihn gerne verwenden.

Akzeptierte Antwort:

Wie andere bereits betont haben, sollten Sie die Ausgabe von ls nicht parsen . Angenommen, Sie verwenden ls nur als Beispiel und werden etwas anderes parsen, gibt es ein paar Möglichkeiten, das zu tun, was Sie wollen:

  1. cut mit -d und -f

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

    von 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
    

    Speziell für ls dies wird wahrscheinlich fehlschlagen, da ls ändert die Menge an Leerzeichen zwischen aufeinanderfolgenden Feldern, damit sie besser ausgerichtet werden. cut behandelt foo<space>bar und foo<space><space>bar anders.

  2. awk und seine Varianten teilen jede Eingabezeile in Felder auf Leerraum auf, sodass Sie anweisen können, nur die gewünschten Felder zu drucken:

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

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

Linux
  1. Warum benötigt der Root-Benutzer eine Sudo-Berechtigung?

  2. Was bedeutet das Attribut „s“ in Dateiberechtigungen?

  3. Wie funktioniert der Tee-Befehl?

  4. Wie funktioniert der Befehl „ls“ unter Linux/Unix?

  5. Besteht das Problem der Donnernden Herde unter Linux noch?

Was macht die Zeile '!/bin/sh -e'?

Der Linux-Befehl sed ändert die Zieldatei nicht

Was bedeutet die Syntax |&in der Shell-Sprache?

Wie findet mein Browser die nächsten DNS-Root-Server?

Was bedeutet das Linux-Pipe-Symbol | tun?

Wie funktioniert der ps-Befehl?