小编glt*_*lts的帖子

在 unix 命令行上在 Unicode 规范化形式之间进行转换

在 Unicode 中,某些字符组合具有不止一种表示形式。

例如,字符ä可以表示为

  • “ä”,即代码点 U+00E4(c3 a4UTF-8 编码中的两个字节),或作为
  • “a?”,即两个代码点 U+0061 U+0308(61 cc 88UTF-8 中的三个字节)。

根据 Unicode 标准,这两种表示形式是等效的,但具有不同的“规范化形式”,请参阅UAX #15:Unicode 规范化形式

unix 工具箱里有各种文本转换工具,想到sedtriconv、 Perl 。如何在命令行上快速轻松地进行 NF 转换?

command-line text-processing unicode conversion

30
推荐指数
2
解决办法
8116
查看次数

何时在 shell 脚本中使用重定向到 stderr

我知道像grep这样的行为良好的实用程序将“正常”消息输出到 stdout,将错误消息输出到 stderr。

$ grep '^foo' file1 file2
file1:foo
grep: file2: No such file or directory
Run Code Online (Sandbox Code Playgroud)

当我自己编写 shell 脚本时,我经常发现很难决定我应该在 stderr 上显示什么输出和哪些消息,或者我是否应该打扰。

我想知道一些好的做法:什么时候将一些消息重定向到标准错误是合理的,什么时候不需要?

“这取决于”,当然,但是您是否有一些见解可以帮助我做出这些决定?

为了使这个主观问题符合格式,我想鼓励回答“为什么”,并以经验为基础,并在可能的情况下以事实为依据。

scripting bash io-redirection shell-script stderr

16
推荐指数
1
解决办法
1834
查看次数

在包含 update-alternatives 的目录中安装手册页

在 Debian 系统上使用update-alternatives (8) 可以将手册页添加为某个主替代方案下的从属手册页。

例如,以下命令安装替代手册页tclsh.1以及tclsh.

$ update-alternatives --install /usr/bin/tclsh tclsh /usr/bin/tclsh8.6.0 100 \
    --slave /usr/share/man/man1/tclsh.1 tclsh.1 /usr/share/man/man1/tclsh8.6.0.1
Run Code Online (Sandbox Code Playgroud)

但是,如果我没有一个而是整个目录,其中包含我想要安装的手册页作为替代方案,该怎么办?如何在不添加数百个奴隶的情况下添加这些?

我正在使用 Ubuntu 12.04,并尝试安装我自己的Tcl 8.6(无 ActiveState)。它有 800 多个手册页/opt/tcl8.6.0/man/man[13n]

man ubuntu debian alternatives

5
推荐指数
0
解决办法
808
查看次数