GNU/Linux >> Znalost Linux >  >> Linux

Pomocí awk vytisknete všechny sloupce od n-tého po poslední

Existuje duplicitní otázka s jednodušší odpovědí pomocí cut:

 svn status |  grep '\!' | cut -d\  -f2-

-d určuje oddělovač (mezera) , -f určuje seznam sloupců (všechny začínají 2.)


Tisk všech sloupců:

awk '{print $0}' somefile

Vytisknout všechny sloupce kromě prvního:

awk '{$1=""; print $0}' somefile

Vytiskněte všechny sloupce kromě prvních dvou:

awk '{$1=$2=""; print $0}' somefile

Můžete použít for-loop pro procházení tiskových polí $2 až $NF (vestavěná proměnná, která představuje počet polí na řádku).

Edit:Protože "print" připojuje nový řádek, budete chtít uložit výsledky do vyrovnávací paměti:

awk '{out=""; for(i=2;i<=NF;i++){out=out" "$i}; print out}'

Případně použijte printf:

awk '{for(i=2;i<=NF;i++){printf "%s ", $i}; printf "\n"}'

Linux
  1. Kdy jste naposledy použili Windows?

  2. Použití Redditu z konzole v roce 2020

  3. Používání Disku Google z příkazového řádku systému Linux

  1. Nahradit všechny nové řádky mezerníkem kromě posledního?

  2. Jaký je rozdíl mezi Print a Printf v Awk?

  3. Jak vyříznout prvních n a posledních n sloupců?

  1. Použití Stratisu ke správě linuxového úložiště z příkazového řádku

  2. Jak používat Awk k tisku pouze řádků obsahujících 5 sloupců?

  3. Jak vytisknout členy objektu c++ pomocí GDB z adresy, pokud je typ třídy objektu jako A::B