我尝试根据它说的命令来理解命令-c
中的选项:tr
man tr
-c, -C, --complement 使用 SET1 的补码
但我无法理解文档中“补充”的含义,所以我做了以下示例来理解它:
我创建了以下名为trance.txt
:
ILOVE YOU
I HATE YOU
i WANNA EAT APPLE PIE
我跑:tr -C A-Za-z "\n" < trance.txt
这给出了输出:
ILOVE
YOU
I
HATE
YOU
i
WANNA
EAT
APPLE
PIE
但我仍然不明白-c
选项的实际作用。你能给我解释一下吗?
A-Za-z
它用它的补码替换集合,即当前字符集中的所有字符,减去那些指定的字符。引用POSIX,在没有的情况下-d
:所以你的命令是用换行符替换所有不是AZ 或 az 的字符。
因为
tr
使用一对一的字符映射来替换它,所以它并不那么简单;-c
and不仅仅是“不在”选项,它们按照-C
选项指定的顺序构建不在给定集中的所有字符的集合。这仅在目标集具有多个字符时才相关。