我想从某种文本中提取markdown(ulysses iii iCloud Text.txt文件)。编辑器用“OBJECT REPLACEMENT CHARACTER”0xEF 0xBF 0xBC (efbfbc)
替换了所有方括号,我想撤消此操作。
如何用“[”替换所有奇数事件,用“]”替换所有其他事件。
编辑:
例如,我想将每个x
替换为[
或]
:
Some xlinkx
- > Some [link]
答案 0 :(得分:1)
您可以将sed
用于您的目的。使用sed -i
,它将编辑文件,进行所需的更改。要在file.bak
使用sed -i.bak
中创建原始文件的备份。该表达式要求您将要替换的字符放在变量char
中(例如,在您的示例中为char=x
)。然后,以下内容会将所有x..stuff..x
替换为[..stuff..]
:
sed -i "s/\(^.*\)\b$char\([^$char]*\)$char\b\(.*$\)/\1[\2]\3/g" filename
示例:强>
$ char=x; echo "Some xlinkx" | sed -e "s/\(^.*\)\b$char\([^$char]*\)$char\b\(.*$\)/\1[\2]\3/g"
Some [link]
表达式使用字边界 \b
来控制表达开头和结尾的匹配,以确保第一次出现被[
替换,第二次出现被]
取代1}}。