l'uso idiomatico di cut sarà
cut -f2- input > output
se il delimitatore è tab ("\t").
Oppure, semplicemente con awk
magic (funzionerà sia per lo spazio che per il delimitatore di tabulazione)
awk '{$1=""}1' input | awk '{$1=$1}1' > output
il primo awk eliminerà il campo 1, ma lascia un delimitatore, il secondo awk rimuove il delimitatore. Il delimitatore di output predefinito sarà lo spazio, se vuoi passare alla scheda, aggiungi -vOFS="\t"
al secondo awk.
AGGIORNATO
In base al tuo input aggiornato, il problema sono gli spazi iniziali che tagliano i trattamenti come più colonne. Un modo per risolvere il problema è rimuoverli prima di nutrirli per tagliare
sed 's/^ *//' input | cut -d" " -f2- > output
o usa il awk
alternativa sopra che funzionerà anche in questo caso.
Puoi usare cut
comando con --complement
opzione:
cut -f1 -d" " --complement input.file > output.file
Questo produrrà tutte le colonne tranne la prima.
@Karafka Avevo file CSV quindi ho aggiunto il separatore "," (puoi sostituirlo con il tuo
cut -d"," -f2- input.csv > output.csv
Quindi, ho usato un ciclo per esaminare tutti i file all'interno della directory
# 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