bash сценарий с awk

Попробуйте эту строку

sed -e "s/^\"'/\'/g" -e "s/'\"$/\'/g" file

Вместо того, чтобы заключать выражение sed между ' ', сделайте это между " " так вы сможете избежать \ the " "

e.g.

@tachomi:~$ echo "\"'this text'\""
"'this text'"
@tachomi:~$ echo "\"'this text'\"" | sed -e "s/^\"'/\'/g" -e "s/'\"$/\'/g" 
'this text'

e.g.2

@tachomi:~$ cat file.txt
"'this text'"
"that text"
'other_text'
@tachomi:~$  sed -e "s/^\"'/\'/g" -e "s/'\"$/\'/g" file.txt
'this text'
"that text"
'other_text'
-1
20.01.2018, 00:45
1 ответ

Поскольку дальнейшего ответа не последовало, я предлагаю просто заменить весь скрипт на

grep -F -f text.txt file.txt >out.txt

Это предполагает, что входные данные из text.txt представляют собой просто строки, которые нужно проверить, а не регулярное выражение, на что указывают сообщения об ошибках, заменяющие $STRING на 000.. из-за этого -f считывает каждую строку из файла, в то время как -F просто обрабатывает их как простые строки. Все, что затем совпадает с файлом file.txt, будет отправлено в out.txt.

В ответ на комментарий dave _thompson _085 ниже, это все еще может быть полезно, если есть абзацы с известной структурой, то есть искомая строка находится в определенной строке в каждом абзаце, тогда -Bи -Aможно также использовать для печати количества строк до и после совпадения.

1
28.01.2020, 05:06

Теги

Похожие вопросы