У вас есть такое цитирование, что STDIN команды ssh передается с помощью findPassword. Вы хотите, чтобы STDIN команды sudo передавался с помощью findPassword.
ssh -p $ tunnel_port $ me @ localhost -t "echo $ (findPassword) | sudo -S -u $ _remoteUser -i"
или
ssh -p $ tunnel_port $ me @ localhost -t " sudo -S -u $ _remoteUser -i <$ (findPassword) "
El uso de grep
con la opción -v
le brinda la posibilidad de seleccionar líneas que no coincidan con -. por ejemplo, dando un archivo file.txt
con este contenido:
first line
second line
third line
fourth text
Uso de este comando:
grep "line" file.txt | grep -v "second"
El resultado será:
first line
third line
Si desea excluir varias palabras al mismo tiempo, puede usar una expresión regular como esa:
grep "line" file.txt | grep -vE "(second|first)"
El resultado será:
third line
Después de la actualización de la pregunta:
Para este caso puedes usar cualquiera de estos métodos:
grep 'http://www.yahoo' data.txt | sed 's/.*\(http:.*\)/\1/'
grep 'http://' data.txt | sed 's/.*\(http:.*\)/\1/' | grep yahoo
La primera forma le dará solo www.yahoo
.
El segundo le dará toda la URL que contiene yahoo
como palabra.
Para extraer todas las URL excepto algunas:
grep 'http://' data.txt | sed 's/.*\(http:.*\)/\1/' | grep -vE "(openxmlformats|<Another URL to exclude>)"
Creo que esto se puede hacer solo con sed:
sed -n '\,http://schemas.openxmlformats.org,!s/.*\(http:.*\).*/\1/p'
-n
desactiva la impresión automática de texto, por lo que solo se pueden imprimir las líneas seleccionadas. \,http://schemas.openxmlformats.org,!
ejecuta el siguiente comando solo en líneas que no coinciden con (, por lo tanto, !
al final)http://schemas.openxmlformats.org
. He usado ,
en lugar de /
como delimitador de expresiones regulares aquí, de ahí el \,
al principio. Esto reduce la necesidad de escapar \
en el patrón. s
es el mismo que el suyo, pero utilizo p
después para imprimir la línea, que ahora contiene solo la URL. Asumo solo una URL por línea.
Eliminar la cita adicional me da la salida correctamente:
$ sed -n '\,http://schemas.openxmlformats.org,!s/.*\(http:.*\).*/\1/p' inpu-file
http://www.yahoo.com/