Avez-vous une méthode pour supprimer rapidement la première ligne d'un fichier dans bash shell? Je veux dire utiliser de l'énergie ou des choses comme ça.
One-liners dans l'ordre inverse de la longueur, portable sauf indication contraire.
sed
(besoin de GNU sed
pour -i
):
sed -i 1d file
ed
(nécessite par exemple bash
pour $'...'
expansion et chaîne ici):
ed file <<< $'1d\nw\nq'
awk
:
awk NR\>1 infile > outfile
tail
:
tail -n +2 infile > outfile
read
+ cat
:
(read x; cat > outfile) < infile
bash
built-in:
while IFS= read -r; do ((i++)) && printf %s\\n "$REPLY" >> outfile; done < infile
$ tail -n +2 <<< $'1\n2\n3' 2 3
En utilisant dd
Fn = "The-BIG-FILE.txt" Fll = $ (($ (head -n 1 $ fn | wc -c) + 1)) Dd si = "$ fn" de = "$ {fn} .out" bs = 1M iflags = skip_bytes skip = $ fll Echo "Les fichiers diffèrent par $ (($ (trouver $ fn * -printf"% s - \ n "; echo" 0 "))) bytes. La première ligne de $ fn est $ spl bytes."
Ajoutez des iflags=
et oflags=
vous pourriez avoir besoin – avec des virgules qui les séparent.