Bash заменить специальный символ '

Это можно сделать следующим образом:

perl -lF';\n?' -00ne '$,=";"; print @F' yourfile

Выход

timestamp=201706291035.....;line 2;line 3;line 4;line 5;line 6;line 7
timestamp=201706291038.....;line 2;line 3;line 4;line 5;line 6

Работа

  1. Опции Perl

    a)-l=> ORS="\n" + RS = "\n"

    b)-F';\n?'=> сделает FS точкой с запятой, за которой следует необязательный перевод строки.

    c)-00=> сделает RS=, тем самым включив режим абзаца.

    d)-n=> включит неявное чтение файла -в + явная печать.

  2. Main:$,=;сделает OFS точкой с запятой, @F— это поля, которые были вырезаны из текущей записи $_на основе FS.

1
20.08.2019, 22:54
1 ответ

Так работает:

A="a'b"
B="${A//\'/\\\'}"

Два примечания:

  1. []не нужны, если внутри них находится только один символ
  2. Вам нужно экранировать \и 'внутри подстановки.
2
27.01.2020, 23:30

Теги

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