假设我有一个名为 doc 的文件,内容为:
{}
[]
现在我想将所有'{'和'['转换为'('和'}'和']'转换为')'。到目前为止,我可以使用此shell命令翻译'{}'和'['正确,但我无法翻译']':
cat doc | tr [\[] [\(] | tr [\{] [\(] | tr [\}] [\)] | tr [\]] [\)] | cat
输出结果为:
()
(]
到目前为止,它可以翻译其他字符,除了']'。你知道为什么吗?
这是一个shell练习,要求将.c文件中的所有“{}”和“[]”翻译成“()”。我只想在这里简单地说。
答案 0 :(得分:3)
tr
只需要使用字符集和范围 - 您不需要像[]
那样用正则表达式范围包围它们。您可以使用一个命令完成所有翻译:
echo 'hello [ world }' | tr '[]{}' '()()'
答案 1 :(得分:1)
这是一个很好的例子:
echo '{}' |tr '\{\}' '\[\]'
输出:[]
这是另一个例子:
echo '}' | tr \} \]
输出:]