- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想将每个参数与参数的位置编号连接起来。我只想使用空字节作为分隔符。
以下是我想要的:
f() {
for ((i=1;i<$(($#+1));++i)); do
echo -n "$i"
echo -ne "\x00"
echo -n "${!i}"
echo -ne "\x00"
done
}
f a b c | hexdump -C
00000000 31 00 61 00 32 00 62 00 33 00 63 00 |1.a.2.b.3.c.|
0000000c
但是我想删除 for 循环(因为它很难看)并使用管道和/或进程替换。所以问题真的是:如何使用空字节作为分隔符来连接两个空字节分隔的流。我尝试使用粘贴:
printf '%s\x00' "$@" | paste -z -d '\0' <(seq $# | tr '\n' '\0') -
但是当使用 -d'\0'
调用粘贴时,粘贴将根本不插入定界符。在不指定分隔符的情况下,粘贴使用制表符。有没有办法让 paste 使用空字节作为列分隔符?是否有其他实用程序可以在这里使用?
最佳答案
为了完整起见,一个仅使用 printf 的非循环构造(但使用了两次):
printf "$(printf '%d\\000%%s\\000' $(seq $#))" "$@"
内部 printf
创建了一个预填充了序列号的格式字符串。 \000
是防止内插字符串开头的数字被合并到转义码中所必需的。
关于linux - 使用空字节作为分隔符将每个参数与参数的位置编号连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50682628/
我正在尝试执行 vagrant up 但一直遇到此错误: ==> default: IOError: [Errno 13] Permission denied: '/usr/local/lib/pyt
我在容器 div 中有一系列动态创建的不同高度的 div。 Varying text... Varying text... Varying text... Varying text.
通过 cygwin 运行 vagrant up 时遇到以下错误。 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-14872260
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
我是 vagrant 的新手,正在尝试将第二个磁盘添加到我正在用 vagrant 制作的虚拟机中。 我想出了如何在第一次启动虚拟机时连接磁盘,但是当我关闭机器时 然后再次备份(使用 'vagrant
我是一名优秀的程序员,十分优秀!