GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit první sloupec (což jsou ve skutečnosti názvy řádků) z datového souboru v linuxu?

idiomatické použití řezu bude

cut -f2- input > output

pokud je vaším oddělovačem tabulátor ("\t").

Nebo jednoduše pomocí awk magic (bude fungovat pro mezeru i tabulátor)

 awk '{$1=""}1' input | awk '{$1=$1}1' > output

první awk odstraní pole 1, ale ponechá oddělovač, druhý awk odstraní oddělovač. Výchozí oddělovač výstupu bude mezera, pokud chcete změnit na tabulátor, přidejte -vOFS="\t" do druhého awk.

AKTUALIZOVÁNO

Na základě vašeho aktualizovaného vstupu je problém s počátečními mezerami, které se vyjmutím považují za více sloupců. Jedním ze způsobů, jak to vyřešit, je nejprve je odstranit před krmením na řez

sed 's/^ *//' input | cut -d" " -f2- > output

nebo použijte awk alternativa výše, která bude fungovat i v tomto případě.


Můžete použít cut příkaz s --complement možnost:

cut -f1 -d" " --complement input.file > output.file

Tím se vypíší všechny sloupce kromě prvního.


@Karafka Měl jsem soubory CSV, takže jsem přidal oddělovač "," (můžete nahradit svým

cut -d"," -f2- input.csv  > output.csv

Potom jsem pomocí smyčky prošel všechny soubory v adresáři

# files are in the directory tmp/
for f in tmp/*
do
    name=`basename $f`
    echo "processing file : $name"
    #kepp all column excep the first one of each csv file 

    cut -d"," -f2- $f > new/$name
    #files using the same names are stored in directory new/  
done

Linux
  1. Linux – jak často je systém souborů Proc aktualizován v systému Linux?

  2. Jak odstranit řádky, které se objevují v souboru B, z jiného souboru A?

  3. výstup 2. sloupce souboru

  1. Vynechání prvního řádku z jakéhokoli výstupu příkazu Linuxu

  2. Jak zachytit výstup top příkazu do souboru v linuxu?

  3. Jak přesměrovat výstup příkazu time do souboru v Linuxu?

  1. Jak získat cestu k aktuálnímu souboru (pwd) v Linuxu z C?

  2. Jak extrahovat hodnotu (v konkrétním řádku a sloupci) ze souboru a přiřadit ji k nové proměnné

  3. Jak číst sloupec IDLE ve výstupu příkazu Linux 'w'?