>
puede hacerlo.
echo "text" > file
tee
puede hacerlo.
echo "test" | tee file
¿Puede sed
hacerlo sin usar ninguno de los anteriores? ¿Es posible guardar la salida de un sed
comando en un archivo sin usar ninguno >
o tee
?
sed
io-redirection
Folatt
fuente
fuente
sed '' file > newfile
y habría visto que>
, de hecho, se puede usarsed
con cualquier otro programa.>
operador. Me interesaba si hubiera un comando sed que pudiera usarse en su lugar. Pero eliminaré esta pregunta si es tan mala.sed -i
respuesta, editaré su pregunta y aclararé lo que busca.sed
no está destinado a la redirección de datos comotee
y>
(están) destinados a ser".Respuestas:
tee y> se pueden usar para la redirección de datos porque están destinados a ser utilizados para la redirección de datos en Linux.
sed por otro lado es un editor de flujo. sed no está destinado a la redirección de datos como tee y> está destinado a ser. Sin embargo, puede usar conjunción de comandos para hacer eso.
use tee o> con sed
o
use sed con la opción -i
el último no redirige, sino que hará cambios en el archivo en sí.
fuente
sed
por sí solo podría hacerlo, porque también es capaz de crear archivos de respaldo con la-i.bak
opción.echo "test" | dd of=file status=none
, suprimiendo la salida de un eco sin usar la oscura redirección de salida2> /dev/null
, pero en su lugar solicité las limitaciones de sed. Realmente me impresionaron las habilidades de sed, ya que es capaz de agregar líneas en el archivo, dándome la impresión de que sed podría hacer cualquier cosa, y más.sed
tiene elw
comando que podría hacer lo que necesita:sed 'w file'
por sí solo tendrá el mismo efecto quetee file
. Si hay otros comandos sed, coloque elw
último:Sin embargo, esto no se verá afectado por la
-n/--quiet/--silent
opción. Eso solo suprime el contenido que de otro modo habría pasado a la salida estándar.fuente
Como ankidaemon señaló correctamente cómo podemos guardar la salida de sed en un archivo. Me gustaría agregar que si estamos realizando algunas operaciones en un archivo, es decir, reemplazar y me gustaría guardar la salida en el mismo archivo. Hay una
-i
bandera en lased
que se pueden realizar ediciones in situ. Sin embargo, esto crea un archivo de respaldo en el proceso. Si eso no es necesario, puede hacerlo simplemente pasando el nombre de archivo vacío a la-i
marca.fuente