由于关于 Software Recommendations 的问题,我想我可以实现一个程序来解析输出ls -l
并以类似 Explorer 的样式显示文件。这种方法是在 ServerFault 上提出的。同时,其他人不鼓励解析ls
。
所以我想知道是否有办法以十六进制或 base64 格式列出文件名,这将绕过任何特殊字符,如\n
和类似。
由于关于 Software Recommendations 的问题,我想我可以实现一个程序来解析输出ls -l
并以类似 Explorer 的样式显示文件。这种方法是在 ServerFault 上提出的。同时,其他人不鼓励解析ls
。
所以我想知道是否有办法以十六进制或 base64 格式列出文件名,这将绕过任何特殊字符,如\n
和类似。
我猜您想将文件名与它们的十六进制值一起显示。在这种情况下,这里有一个简单的代码行来证明这是可能的:
这个想法是,对于我们找到的每个文件,我们都
printf
使用一个格式字符串和两个参数运行。第一个参数是文件名,第二个参数是使用实用程序转换为十六进制的文件名xxd
。输出的进一步定制留给读者作为练习。
好吧,称我为菜鸟,但我尝试了 John1024 的建议,但它给了我一个错误,所以我尝试自己解决。我制作了一个名为的文件
readline.sh
,其中包含以下内容:现在运行它,我调用
ls | ./readline.sh
它并输出以下内容:现在,我想指出这个脚本没有任何方法可以检查 $1 是否存在,并且可能还有其他问题,但是,假设我理解你的问题,似乎解决方案的本质是管道
ls
逐行输出到xxd -p
. 所有多余的东西都是a)让我在发布之前确保它有效,b)展示实际的原则。