[英]Interactively enter non-printable characters
我知道如何使用echo输入不可打印的字符到命令中:
echo -e '\xde\xad\xbe\xef' | some-cmd
但是如果some-cmd
命令是交互式的并且可能稍后要求输入呢? 我希望能够继续输入不可打印的字符作为反斜杠转义序列。
因此,例如,给定以下Python脚本:
#!/usr/bin/env python3
while True:
s = input("> ")
print(s, len(s))
我想通过以下方式与之互动:
$ ./io.py
> \x41
A 1
> \x42
B 1
> \xde
Þ 1
> \xad
\xad 1
即我输入转义值并在被送入程序之前得到解释。
不确定我理解你的确切要求,但也许你想要这个:
$ awk --non-decimal-data '{for(i=1;i<=NF;i++)printf "%c", (0+("0x"$i))}' | some-cmd
然后,您可以在提示符处输入由空格/制表符/换行符分隔的十六进制值。
样品用法:
$ awk --non-decimal-data '{for(i=1;i<=NF;i++)printf "%c", (0+("0x"$i))}' | sponge | sed '1s/^/Output:\n/'
40
30 31 41
a 61 62 a
Output:
@01A
ab
while read -r line; do echo -e $line; done | some_cmd
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.