标签: ascii

59
推荐指数
6
解决办法
11万
查看次数

带有“纯”(7 位)ASCII 输出的“树”命令输出

“树”命令使用漂亮的框绘图字符来显示树,但我想在“代码页中立”上下文中使用输出(我知道确实总是有一个代码页,但通过将其限制在较低的我希望可以免于担心乌兰巴托有人看到笑脸等)。

例如,而不是:

??? include
?   ??? foo
?   ??? bar
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西:

+-- include
|   +-- foo
|   \-- bar
Run Code Online (Sandbox Code Playgroud)

但是我尝试过的“树”开关组合都没有给出这个(似乎更像是他们将框绘图字符作为基线并使其更漂亮)

我还寻找框绘图过滤器来执行此类转换,而没有找到任何超出无限 ASCII 艺术的东西:-)。一个通用的过滤器闻起来像是要在 15 分钟内煮熟的东西——再加上两天的增量天,绊倒所有有趣的角落案例:-)

command-line ascii tree

56
推荐指数
3
解决办法
4万
查看次数

ASCII to Binary 和 Binary to ASCII 转换工具?

哪个是将 ASCII 转换为二进制以及将二进制转换为 ASCII 的好工具?

我希望是这样的:

$ echo --binary "This is a binary message"
01010100 01101000 01101001 01110011 00100000 01101001 01110011 00100000 01100001 00100000 01100010 01101001 01101110 01100001 01110010 01111001 00100000 01101101 01100101 01110011 01110011 01100001 01100111 01100101
Run Code Online (Sandbox Code Playgroud)

或者,更现实的:

$ echo "This is a binary message" | ascii2bin
01010100 01101000 01101001 01110011 00100000 01101001 01110011 00100000 01100001 00100000 01100010 01101001 01101110 01100001 01110010 01111001 00100000 01101101 01100101 01110011 01110011 01100001 01100111 01100101
Run Code Online (Sandbox Code Playgroud)

还有相反的:

$ echo "01010100 01101000 01101001 01110011 00100000 …
Run Code Online (Sandbox Code Playgroud)

bash ascii binary

42
推荐指数
5
解决办法
11万
查看次数

为什么 Enter 键不发送 EOL?

Unix / Linux EOL 是 LF、换行、ASCII 10、转义序列\n

这是一个 Python 代码片段,可以准确地获得一个按键:

import sys, tty, termios
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
    tty.setraw(sys.stdin.fileno())
    ch = sys.stdin.read(1)
finally:
    termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
    return ch
Run Code Online (Sandbox Code Playgroud)

当我按下Enter键盘以响应此代码段时,它给出了\r回车符 ASCII 13。

Windows 上Enter发送CR LF == 13 10. *nix 不是 Windows;为什么Enter给 13 而不是 10?

command-line terminal ascii newlines

19
推荐指数
2
解决办法
5437
查看次数

为什么单位分隔符 (ASCII 31) 在终端输出中不可见?

单位分隔符 ASCII 字符(ASCII 31,八进制 37)在 Vim 中显示为^_. 但是如果我将相同的文件打印到终端,则该字符是不可见的。这会导致一行上的字段粘在一起:

# In Vim and less:

first field^_second field^_last field

# cat the same file to terminal:
cat delim.txt
first fieldsecond fieldlast field

# print 2nd field with awk 
cat delim.txt | awk 'BEGIN {FS = "\037"} {print $2}'
second field
Run Code Online (Sandbox Code Playgroud)

我想我可以使用 cat -v 使单位分隔符可见:

cat -v delim.txt
first field^_second field^_last field
Run Code Online (Sandbox Code Playgroud)

但这比较麻烦。为什么在 Bash shell 中打印到标准输出时,单位分隔符没有可见的表示?我什至无法正确复制和粘贴 shell 输出;单元分离器在此过程中丢失。

terminal ascii

18
推荐指数
2
解决办法
3万
查看次数

vim 可以只显示 ASCII 字符,而将其他字节视为二进制数据吗?

我已经知道vim -b,但是,根据所使用的语言环境,它将多字节字符(如 UTF-8)显示为单个字母。

vim无论字符集如何,我如何要求只显示 ASCII 可打印字符,并将其余字符视为二进制数据?

vim character-encoding ascii unicode binary

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

将十进制打印为 ascii 字符,我的命令没有按预期输出

我想使用以下命令输出所有 ascii 字符的字符串

for i in `seq 32 127`; do printf "%c" $i; done
Run Code Online (Sandbox Code Playgroud)

上面命令的输出是:

33333334444444444555555555566666666667777777777..............
Run Code Online (Sandbox Code Playgroud)

它是每个数字的第一个(从左边开始)数字。

浏览这个网站,我发现了我的问题的答案如何在 CLI 中打印所有可打印的 ASCII 字符?,但是我仍然不明白为什么我的原始代码段没有按预期输出 ascii 字符。

shell bash character-encoding ascii

15
推荐指数
1
解决办法
3万
查看次数

从工作流(文件)中删除所有非 ascii 字符

如何从一个文件中删除所有非 ascii 字符?是否有特定的命令来执行此操作?

grep --colour='auto' -P -n'[^\x00-\x7]' /usr/local/...
Run Code Online (Sandbox Code Playgroud)

我相信这会在工作流程中找到字符,但是我将如何删除相关字符的所有实例?

text-processing ascii

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

如何在 Bash 中通过不同的代码点打印 ASCII 字符?

在 ASCII 表中存在“J”字符,它在不同的数字系统中具有代码点:

Oct   Dec   Hex   Char
112   74    4A    J
Run Code Online (Sandbox Code Playgroud)

可以通过打印 printf '\112'echo $'\112'. 如何通过十进制和十六进制代码点表示打印相同的字符?

shell bash ascii

14
推荐指数
4
解决办法
5万
查看次数

EOT和EOF的区别

我知道 EOT 是 ASCII 码 4,而 EOF 被编码为 -1(至少在 C 中)。在我发现 EOF 映射到 -1 之前,我认为它只是 EOT 的同义词。为什么 EOF 映射到 -1 而不是 EOT?据我所知,它们都做同样的事情,即终止文件流。我能辨别的唯一区别是 EOT 还会终止 bash shell 中的命令。我想描述一下这两个代码之间的精确技术差异。

ascii

13
推荐指数
2
解决办法
3万
查看次数