У меня есть одна строка, подобная этой:
myString='value1|value57|value31|value21'
, и у меня есть файл values_to_remove.txt, содержащий список значений, по одному на строку, таким образом
values_to_remove.txt
value1
value31
В bash, как я могу удалить значения, содержащиеся в "values_to_remove.txt", из строки, принимая во внимание, что значения разделены конвейером иКонечно, если я удаляю значение, я должен удалить также предыдущий и следующий канал, если таковые имеются.
Я достиг этого в python и вызвал скрипт python из bash, но мне нужно сделать это непосредственно в bashс одной строковой командой, а не маленьким скриптом, в противном случае я уже могу использовать свой маленький скрипт на python.
Это код Python
myString = 'value1|value2|value3|value4'
arrString = myString.split("|")
with open("myfile.txt", encoding="utf-8") as file:
for l in file:
if l in arrString:
arrString.remove(l)
myNewString = "|".join(arrString)
Обратите внимание: значения, разделенные конвейером, могут быть любыми строками.
Спасибо