DC: '\' (0134) не реализовано
Я использую технику запутывания, которая включает 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<<<
а затем скопируйте и вставьте строку с обратной косой чертой. Weird.
У меня такие вопросы:
Есть ли способ sed/cut/awk/etc. удалить обратную косую черту и поместить все строки в одну строку без обратной косой черты?
или же
Есть ли способ помочь dc интерпретировать обратную косую черту?
1 ответ
Вы можете справиться с этим, используя манипуляции со строками BASH:
s=$(<temp.txt)
dc <<< "${s//\\[[:space:]]/}"
Hello world.
Hello world.
Hello world.
"${s//\\[[:space:]]/}"
удалит все экземпляры \
с последующим переводом строки из данных файла.