2 Stimmen

Datei ab einer bestimmten Zeile sortieren

Ich möchte eine Datei sortieren können, aber nur bis zu einer bestimmten Zeile und darunter. Vom Handbuch her ist sort nicht in der Lage, den Inhalt zu analysieren, also brauche ich ein zweites Programm, um dies zu tun. read? oder awk vielleicht? Hier ist die Datei, die ich gerne sortieren würde:

tar --exclude-from=$EXCLUDE_FILE --exclude=$BACKDEST/$PC-* \
-cvpzf $BACKDEST/$BACKUPNAME.tar.gz \
/etc/X11/xorg.conf \
/etc/X11/xorg.conf.1 \
/etc/fonts/conf.avail.1 \
/etc/fonts/conf.avail/60-liberation.conf \

In diesem Fall möchte ich also mit der Sortierung in Zeile drei beginnen. Ich denke, ich werde eine Funktion verwenden müssen, um dies zu erreichen, etwa so

cat backup.sh | while read LINE; do echo $LINE | sort; done

Ich bin ziemlich neu auf diesem Gebiet und das Skript sieht so aus, als ob es etwas vermissen würde. Außerdem bin ich nicht sicher, wie man bei einer bestimmten Zeilennummer beginnt.

Irgendwelche Ideen?

0voto

Erweitern Sie Vigneswaran R die Antwort von awk :

mit tty um die stdin-Datei Ihres aktuellen Terminals zu erhalten, drucken Sie die ersten drei Zeilen direkt in Ihr Terminal (nein, die Eingabe wird nicht ausgeführt) innerhalb von awk und leiten Sie den Rest zu sort.

tty
>/dev/pts/3

cat file.txt | awk '{if (NR < 3) print $0 > "/dev/pts/3"; else print $0}' | sort

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X