Поразмыслив, я думаю, что вы подходите к этому неверно.
w3m используется для отображения HTML-сообщений в Mutt; но это не означает, что вы легко сможете открывать ссылки в обработанном HTML (например, перемещение курсора на ссылку возможно только с помощью мыши).
Вместо этого вы можете использовать сценарий Perl, например extracturl 1 , или, если ваш терминал его поддерживает, что-то вроде urxvt-perls .
1. Ссылка на пакет AUR. Апстрим здесь: https://code.google.com/p/extracturl/
Aquí hay una forma de manejar su problema particular:
find. -maxdepth 1 -type f -name "profiles*.csv" ! -name "profiles00.csv" -exec sed -i -e '1!b' -e 'R profiles00.csv' -e 'N' {} +
Escrito presentado en forma de -líneas múltiples como:
find. -maxdepth 1 \
-type f \
-name "profiles*.csv" ! -name "profiles00.csv" \
-exec sed -i -e '1!b' \
-e 'R profiles00.csv' \
-e 'N' \
{} +
para ser leído como:encontrar utilidad deberá
-maxdepth 1
=> caminar solo en el directorio actual, normalmente recurre hasta la jerarquía más baja.
-type f
=> mientras camina, seleccione solo los archivos regulares.
-name "profiles*.csv" ! -name "profiles00.csv"
=> de todos los archivos regulares, seleccione solo aquellos que tienen perfiles *.csv como sus nombres base Y filtre el archivo "profiles00.csv" ya que este es el archivo de encabezado.
-exec sed -i -e '1!b' -e 'R profiles00.csv' -e 'N' {} +
-i
opción => editar archivos en lugar GNU sed asumido
-e
opción => sigue el código sed
1!b
=> no toques las primeras líneas que no sean -.
R profiles00.csv
=> leer una línea (ya que es la primera vez, será la primera línea )del archivo profiles00.csv. Entonces, esencialmente, el encabezado se extrae del archivo profiles00.csv. Pero no impreso todavía.
N
=> Lea la siguiente línea en el espacio del patrón. esto vacía el búfer de lectura y después de eso, el espacio del patrón real se vacía (líneas 1,2 )del archivo actual que está siendo operado por sed.
{} +
hará que encuentre proporcione los múltiples archivos que ha seleccionado de una sola vez a la utilidad sed
y GNU sed es capaz de manejar múltiples archivos con la opción -i
. Específicamente, los números de línea se restablecen para la lectura de un nuevo archivo.
≠================ Vía positiva ======
LC_ALL=C \
find. ! -name. -prune -type f \
-name 'profiles??*.csv' \
! -name 'profiles*[!0-9]*.csv' \
! -name 'profiles00.csv' \
-exec sh -c '
shift "$1"
head -n 1 < profiles00.csv > header
for arg do
printf "0r header\\nw\\nq\\n" | ed -s "$arg"
done
' 2 1 {} +
Aquí prescindimos de sed y recurrimos al ed.
Este es un bosquejo de código pseudo -no probado, por lo que puede que no funcione, pero lo haría algo como (primero haga una copia de seguridad de sus archivos para que no los sobrescriba):
sed -i '1s/^/'`head -n1 profiles00.csv`'/' *.csv
Para obtener más información sobre la inserción en archivos:
https://stackoverflow.com/questions/9533679/how-to-insert-a-text-at-the-beginning-of-a-file
No necesitas xargs
Comando:
find. -maxdepth 1 ! -name "profiles00.csv" -a -name "*csv" -exec sed -i "1s/^/$(head -1 profiles00.csv)\n/" {} \;
Aquí estoy usando find
para seleccionar archivos y sed
para editar en el lugar
Explicación
find
maxdepth 1
-para seleccionar solo archivos en el directorio inmediato y no en el subdirectorio, si también desea editar archivos en el subdirectorio, puede eliminar esta opción ! -name "profiles00.csv" -a -name "*csv"
-para seleccionar todos los archivos csv pero no los perfiles00.csv, aquí -a
significa y y !
significa no sed
-i
-editar archivos en su lugar 1
-direccionamiento de líneas/^/$(head -1 profiles00.csv)\n/
-para reemplazar el comienzo del archivo con el texto dado head
-1
-para seleccionar la primera línea