FreeBSD tar
] не поддерживает формат xar
, но еще раз портирует на помощь - archivers / xar
кажется вам тем, что вам нужно!
Asumiendo que sus requisitos son:
sed -i 1,10d A.txt
Puedes hacerlo de la siguiente manera:
head -10 A.txt > B.txt
sed -i 1,10d A.txt
El primer comando escribirá las primeras 10 líneas del archivo A.txt en B.txt
El segundo comando (sugerido por usted )eliminará las primeras 10 líneas del archivo A.txt
Tenga en cuenta que para obtener las primeras 10 líneas, debe hacerlo antes de que se eliminen esas líneas
Usando sed
y el script sed
1,10{
w otherfile
d
}
Esto escribirá las líneas 1 a 10 en el archivo otherfile
mientras las elimina de la entrada.
Con en -lugar de edición del archivo original (usando GNU sed
aquí):
sed -i '1,10{w B.txt
d}' A.txt
La nueva línea es necesaria para delimitar el nombre del archivo. O,
sed -i -e '1,10{w B.txt' -e 'd}' A.txt
puede lograr esto usando sed con tuberías
sed -n '1,10p' a.txt > b.txt | sed -i '1,10d' a.txt
las primeras 10 líneas de a.txt
se copiarán en b.txt
y luego las primeras 10 líneas a.txt
se eliminarán.
Conksh93
:
{ head >> B.txt; cat 1<>; A.txt; } < A.txt
Si su cat
es GNU cat
, se quejará de que su salida estándar se refiere al mismo archivo que su entrada estándar. Puede solucionar eso usando cat|cat
en lugar de cat
, o usar ksh93
's cat
incorporado, por ejemplo, usando command /opt/ast/bin/cat
en lugar de cat
, o poniendo /opt/ast/bin
delante de $PATH
.
El operador de redirección 1<>;
se comporta como el operador estándar 1<>
(abierto en modo lectura+escritura sin truncamiento)excepto que también trunca el archivo al final si el comando redirigido fue exitoso.