В дополнение к ответу Габриеля Ланы обратите внимание, что для чтения содержимого со стандартного входа команде BSD-вставки необходимо указать тире.
руководство по команде вставки
Если для одного или нескольких входных файлов указано '-', то стандартный используется вход; стандартный вход считывается одной строкой за раз, по кругу, для каждого случая "-".
Итак, последнее должно быть изменено, как показано ниже
cut -d / -f 4 file1.txt | paste -sd '|' - | xargs -I{} grep -v -E {} file2.csv
Podría usar caracteres de escape antes de cada carácter especial (<
, [
, >
, ]
), pero eso sería bastante engorroso en este caso. En su lugar, simplemente puede rodear todo el argumento con comillas simples de la siguiente manera:
$./a.out '<font name="Moronicity" size=12><!-- ignore this comment --><i></i>
<div style="aa">hello</div></font><img src="spacer.gif">
<div style="bb"><img src="spacer.gif"></div>'
Otra opción es colocar la cadena de parámetros
<font name="Moronicity" size=12><!-- ignore this comment --><i></i>
<div style="aa">hello</div></font><img src="spacer.gif">
<div style="bb"><img src="spacer.gif"></div>
en un archivo (por ejemplo,params
). Esto permite llamar a su función en combinación con el comando cat
, que genera el contenido de un archivo:
$./a.out "$(cat params)"
Tenga en cuenta que $()
se usa para ejecutar el comando cat params
, y las comillas dobles se usan para incluir la totalidad del archivo como parámetro para a.out
. Con la combinación de los dos, podemos pasar el contenido del archivo a los parámetros de su programa.
Si necesita que el texto HTML sea un parámetro para el programa, entonces necesita citarlo para protegerlo del shell (que ve menos -que los signos como redirección, entre otras cosas):
./a.out '<font name="Moronicity" size=12><!-- ignore this comment --><i></i>
<div style="aa">hello</div></font><img src="spacer.gif">
<div style="bb"><img src="spacer.gif"></div>'
Si necesita que el texto HTML se envíe al programa como entrada (stdin ), puede citarlo como un documento aquí -. He sangrado aún más la primera línea para indicar que el resto del texto comienza en la columna 1:
./a.out << 'EOF'
<font name="Moronicity" size=12><!-- ignore this comment --><i></i>
<div style="aa">hello</div></font><img src="spacer.gif">
<div style="bb"><img src="spacer.gif"></div>
EOF
Las comillas simples -alrededor de EOF
impiden la expansión de cualquier parámetro en el texto.