【问题标题】:dc: '\' (0134) unimplementeddc: '\' (0134) 未实现
【发布时间】:2015-10-21 02:35:35
【问题描述】:

我正在使用涉及 dc 的混淆技术。如果您使用不包含反斜杠的较小行,您会得到这个。

root@revolt:~/Working/Bash# cat temp.text
[q]sa[ln0=aln256%Pln256/snlbx]sb806639340302927610462193083720snlbxq

root@revolt:~/Working/Bash# cat temp.text | dc
Hello world.

但是,如果您尝试更大的东西,例如

root@revolt:~/Working/Bash# cat temp.text
[q]sa[ln0=aln256%Pln256/snlbx]sb331832177645759643350464573357407988278700985112761888842542077811521\
080128221484476741215560snlbxq

如果最后一行是反斜杠,就会发生这种情况:

root@revolt:~/Working/Bash# cat temp.text | dc
dc: '\' (0134) unimplemented
Hel���t��root@revolt:~/Working/Bash# 

但是,如果你要运行这个

root@revolt:~/Working/Bash# dc<<<[q]sa[ln0=aln256%Pln256/snlbx]sb331832177645759643350464573357407988278700985112761888842542077811521\
> 080128221484476741215560snlbxq
Hello world.
Hello world.
Hello world.

它工作得很好。上面的例子是输入dc&lt;&lt;&lt;,然后复制并粘贴带有反斜杠的字符串。很奇怪。

我的问题是:

  1. 有没有办法 sed/cut/awk/etc.删除反斜杠并放 一行中的所有行都没有反斜杠?

  2. 有没有办法帮助 dc 解释反斜杠?

【问题讨论】:

    标签: regex bash awk sed dc


    【解决方案1】:

    您可以使用 BASH 字符串操作来处理它:

    s=$(<temp.txt)
    dc <<< "${s//\\[[:space:]]/}"
    Hello world.
    Hello world.
    Hello world.
    

    "${s//\\[[:space:]]/}" 将从文件数据中删除所有 \ 实例,后跟换行符。

    【讨论】:

    • 工作就像一个魅力。我猜你每天都会学到一些新东西!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    相关资源
    最近更新 更多