Die idiomatische Verwendung von cut wird
seincut -f2- input > output
wenn Ihr Trennzeichen ein Tabulator ("\t") ist.
Oder einfach mit awk
magic (funktioniert sowohl für Leerzeichen als auch für Tab-Trennzeichen)
awk '{$1=""}1' input | awk '{$1=$1}1' > output
Das erste awk löscht Feld 1, lässt aber ein Trennzeichen, das zweite awk entfernt das Trennzeichen. Das Standardtrennzeichen für die Ausgabe ist ein Leerzeichen. Wenn Sie zum Tabulator wechseln möchten, fügen Sie -vOFS="\t"
hinzu zum zweiten awk.
AKTUALISIERT
Basierend auf Ihrer aktualisierten Eingabe besteht das Problem in den anfänglichen Leerzeichen, die Leckereien als mehrere Spalten schneiden. Eine Möglichkeit, dies zu beheben, besteht darin, sie zuerst zu entfernen, bevor sie zum Schneiden verfüttert werden
sed 's/^ *//' input | cut -d" " -f2- > output
oder verwenden Sie den awk
Alternative oben, die auch in diesem Fall funktioniert.
Sie können cut
verwenden Befehl mit --complement
Möglichkeit:
cut -f1 -d" " --complement input.file > output.file
Dadurch werden alle Spalten außer der ersten ausgegeben.
@Karafka Ich hatte CSV-Dateien, also habe ich das Trennzeichen "," hinzugefügt (Sie können es durch Ihr eigenes ersetzen
cut -d"," -f2- input.csv > output.csv
Dann habe ich eine Schleife verwendet, um alle Dateien im Verzeichnis zu durchlaufen
# 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