Tengo un programa texcountque genera la cantidad de palabras en mi documento LaTeX. También puedo canalizar el resultado de esto para sedhacer los saltos de línea TeX de nueva línea y escribir esto en un archivo que luego pueda incluir en mi documento final. Pero cuando hago, texcount foo.tex | sed s/$/'\\\\'/ > wc.texla salida de la línea de comandos texcountse suprime.
¿Cómo puedo obtener la salida del primer comando para que se muestre en la terminal y se canalice a sed?
shell
text-processing
utilities
Seamus
fuente
fuente

tee. Si tiene ciertos shells como Bash, puede canalizar la salida de tee usando>(some further commands). En otros shells, tendría que darle a tee un argumento de nombre de archivo (este es su modo de operación estándar), y luego ejecutarsome further commands < thatfiley luego eliminar ese archivo. O vea la respuesta de Hari a continuación.Necesita el comando "tee", que le permite dividir las tuberías.
Esto te dejaría el archivo output.txt adicional. Lea esto para obtener más información: http://www.unixtutorial.org/2007/12/tee-replicate-standard-output/ También puede hacer "man tee".
fuente
texcount foo.tex | tee unmodified |sed s/$/'\\\\'/ > modifiedpone versiones modificadas y no modificadas de la salida en los dos archivos. ¿Cómo imprimo la versión no modificada en el terminal? Lo intentétee stdoutpero eso no imprime nada ...&& cat unmodifiedal final. Eso volcará la salida sin modificar al terminal.texcount foo.tex | tee output.txt | sed s/$/'\\\\'/ > wc.tex ; cat output.txt. O podrías usartexcount foo.tex | tee output.txt; sed s/$/'\\\\'/ output.txt > wc.tex. En cualquier caso, probablemente querrásrm output.txtdespués.Puedes usar lo bastante idiomático
/dev/ttyes un dispositivo mágico que se refiere al terminal de control del proceso actual.fuente