l'usage idiomatique de cut sera
cut -f2- input > output
si votre délimiteur est une tabulation ("\t").
Ou, simplement avec awk
magie (fonctionnera à la fois pour l'espace et le délimiteur de tabulation)
awk '{$1=""}1' input | awk '{$1=$1}1' > output
le premier awk supprime le champ 1, mais laisse un délimiteur, le second awk supprime le délimiteur. Le délimiteur de sortie par défaut sera l'espace, si vous voulez passer à l'onglet, ajoutez -vOFS="\t"
au deuxième awk.
MISE À JOUR
Sur la base de votre entrée mise à jour, le problème réside dans les espaces initiaux qui coupent les traitements en plusieurs colonnes. Une façon d'y remédier est de les retirer avant de les nourrir pour couper
sed 's/^ *//' input | cut -d" " -f2- > output
ou utilisez le awk
alternative ci-dessus qui fonctionnera également dans ce cas.
Vous pouvez utiliser cut
commande avec --complement
choix :
cut -f1 -d" " --complement input.file > output.file
Cela affichera toutes les colonnes sauf la première.
@Karafka J'avais des fichiers CSV donc j'ai ajouté le séparateur "," (vous pouvez remplacer par le vôtre
cut -d"," -f2- input.csv > output.csv
Ensuite, j'ai utilisé une boucle pour parcourir tous les fichiers du répertoire
# 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