【问题标题】:md5sum - ignore trailing whitespacemd5sum - 忽略尾随空格
【发布时间】:2019-07-09 04:57:54
【问题描述】:

假设我有两个文件:

1.json

{"foo":"bar"}\n

2.json

{"foo":"bar"}

在使用校验和例程时,有没有办法忽略尾随空格?

可能是这样的:

md5sum < <(cat file | trim_somehow)

【问题讨论】:

  • 尾随换行符(并且只有换行符)被 shell 命令替换(如果数据适合 shell 内存)删除:printf %s "$(cat file)" | md5sum

标签: checksum md5sum


【解决方案1】:

您可以使用sedxargs

xargs 要简单得多,但要小心。 我不确定在这种情况下使用是否安全。阅读此答案下方的 cmets https://stackoverflow.com/a/12973694/4330274。 (在那篇文章中有很多关于你的问题的答案)。

md5sum &lt; &lt;(cat file | xargs) 将删除尾随/前导空格(此外,正如 dave_thompson_085 在下面的 cmets 中所述,它将每个空格序列压缩为一个空格,并将删除引号和反斜杠) 在将文件传递给 md5sum 实用程序之前从文件中提取。

注意:xargs 在输入的末尾追加一个新行。

我建议为此使用sed。它更安全。阅读此答案https://stackoverflow.com/a/3232433/4330274

【讨论】:

  • 确定所有开头/结尾的空格怎么样?
  • 对不起,我误解了这个问题,我会编辑答案。
  • xargs 使用默认的 echo 还将任何嵌入的空白序列压缩为单个 SP,这对于 JSON 通常不是问题,并删除所有引号和许多反斜杠,这是。
  • “使用默认回声”是什么意思?
  • @AlexanderMills 他指的是echo 实用程序。试试echo "Alexander 's' / Mills" | xargs。所有的空白序列都将被替换为一个空白。引号和反斜杠将被删除,如果您将它与 JSON 一起使用,这确实是一个问题,因为 JSON 在其语法中使用引号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 1970-01-01
  • 2021-03-25
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多