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