GNU/Linux >> Znalost Linux >  >> Linux

Existuje inverzní příkaz k řezání?

Rád používám cut příkaz v Linuxu pomocí -c vlajka. Zajímá mě však nalezení příkazu, který dělá sadu inverzní k cut . V podstatě, vzhledem k zadání:

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

Chci vidět všechno kromě „4096 4 20:15“. Zde je výstup:

drwxrwxrwx 2 root root bin
drwxrwxrwx 2 root root Desktop

Chci být schopen doslova stříhat mezi znaky x a y, pokud to dává smysl.

Nějaké nápady? Nedokážu si představit, že by bylo těžké napsat skript, ale pokud pro něj již existuje příkaz, rád bych ho použil.

Přijatá odpověď:

Jak poukázali jiní, neměli byste analyzovat výstup ls . Za předpokladu, že používáte ls pouze jako příklad a bude analyzovat něco jiného, ​​existuje několik způsobů, jak dělat to, co chcete:

  1. cut s -d a -f

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

    z 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
    

    Konkrétně pro ls toto pravděpodobně selže, protože ls změní množství mezer mezi po sobě jdoucími poli, aby se lépe zarovnaly. cut zachází s foo<space>bar a foo<space><space>bar jinak.

  2. awk a jeho varianty rozdělují každý vstupní řádek na pole na prázdném místě, takže mu můžete říct, aby tiskl pouze pole, která chcete:

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

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

Linux
  1. Jak spustit příkaz jako správce systému (root)?

  2. Proč potřebuje uživatel root oprávnění sudo?

  3. Jak funguje příkaz 'ls' v Linuxu/Unixu?

  1. Existuje již problém Thundering Herd v Linuxu?

  2. Co dělá řádek '!/bin/sh -e'?

  3. Co znamená &na konci linuxového příkazu?

  1. Co znamená syntaxe |&v jazyce shellu?

  2. Jak můj prohlížeč najde nejbližší kořenové servery DNS?

  3. Jak jádro připojí kořenový oddíl?