相关疑难解决方法(0)

为什么 printf 比 echo 好?

我听说printfecho. 根据我的经验,我只能回忆起一个我不得不使用的实例,printf因为它echo无法将一些文本输入到 RHEL 5.8 上的某个程序中,但printf确实如此。但显然,还有其他差异,我想询问它们是什么以及是否有特定情况下何时使用一种与另一种。

echo text-processing printf

635
推荐指数
4
解决办法
27万
查看次数

如何在`grep`中使用十六进制代码指定字符?

我正在使用以下命令将十六进制代码 0900(而不是?)的字符集范围 grep 到 097F(而不是?)。我如何使用十六进制代码代替 ? 和 ??

bzcat archive.bz2 | grep -v '<[?-?]*\s' | tr '[:punct:][:blank:][:digit:]' '\n' | uniq | grep -o '^[?-?]*$' | sort -f | uniq -c | sort -nr | head -50000 | awk '{print "<w f=\""$1"\">"$2"</w>"}' > hindi.xml
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

    <w f="399651">??</w>
    <w f="264423">??</w>
    <w f="213707">??</w>
    <w f="74728">??</w>
    <w f="44281">??</w>
    <w f="35125">??</w>
    <w f="26628">?</w>
    <w f="23981">??</w>
    <w f="22861">??</w> 
    ...
Run Code Online (Sandbox Code Playgroud)

我只想使用十六进制代码而不是 ? 和 ?在上面的命令中。

如果根本不可能使用十六进制代码,我可以使用 unicode 代替十六进制代码作为字符集 ('?-?') 吗?

我正在使用 Ubuntu 10.04

shell grep character-encoding unicode

36
推荐指数
3
解决办法
8万
查看次数

如何 grep 查找一系列 unicode 字符?

如何 grep 查找一系列 unicode 字符?

\n

我见过一个角色的例子。如何用 unicode 值来 grep 字符?

\n

我对 shell 替换方法以外的方法感兴趣

\n

因为 shell 替换似乎有点有限,例如它似乎不适用于非图形 unicode 字符,例如 \\u80 的代码点。

\n

我可以让该方法在一定范围内工作,但仅限于一定程度,因为它不会覆盖像 \\u80 (unicode codepoint 80) 这样的非图形字符

\n
$ echo grep [$\'\\u41\'-$\'\\u45\']\ngrep [A-E]\n\n$ echo 4142434445|xxd -r -p\nABCDE\n\n$ echo 4142434445|xxd -r -p | grep [$\'\\u41\'-$\'\\u45\']\nABCDE\n
Run Code Online (Sandbox Code Playgroud)\n

\\u0080-\\uFFFF$ 方法在 shell 级别使用替换,因此无法从或向上查找字符\\u0080,因为如果 shell 无法显示字符,则它将无法工作。

\n

ugrep 可通过 debian 的 apt-get 获得,但不适用于我在 VPS 上的 ubuntu 版本。我还得再测试一下。

\n

注意 事实 证明,shell 替换方法确实适用于控制字符,因此甚至适用于一系列控制字符或任何 unicode 字符,毫无疑问 ugrep 也适用。最初,当我尝试使用 grep …

grep

5
推荐指数
1
解决办法
1393
查看次数