【问题标题】:Using xargs parameterrs as variables to compare two md5sum使用xargs参数作为变量比较两个md5sum
【发布时间】:2021-09-09 02:08:31
【问题描述】:

我正在使用以下代码提取两个 md5sum:

md5sum test{1,2} | cut -d' ' -f1-2 

我收到两个 md5sum,如下例所示:

02eace9cb4b99519b49d50b3e44ecebc 
d8e8fca2dc0f896fd7cb4cb0031ba249 

之后我不知道如何比较它们。我尝试过使用 xargs:

md5sum test{1,2} | cut -d' ' -f1-2 | xargs bash -c '$0 == $1'

但是,它会尝试将 md5sum 作为命令执行

有什么建议吗?

【问题讨论】:

  • 请添加您想要的输出。
  • 我用过这个代码:md5sum test{1,2} | cut -d' ' -f1-2 | xargs bash -c 'diff -u <(echo "$0") <(echo "$1")' 但是它只在文件不同时提供输出...
  • 您知道diff 命令对吗?
  • @Cyrus 我想获得两个字符串完全相同的信息。类似“平等”的东西。请注意,我试图在不使用 sed 和 awk 的情况下将其作为一个衬垫。

标签: bash cut xargs md5sum one-liner


【解决方案1】:

尝试改用command subsitution

#!/bin/bash

echo 1 > file_a
echo 2 > file_b
echo 1 > file_c

file1=file_a
# try doing "file2=file_b" as well
file2=file_c

if [[ $(sha1sum $file1 | cut -d ' ' -f1-2) = $(sha1sum $file2 | cut -d ' ' -f1-2) ]]; then
    echo same
else
    echo different
fi

【讨论】:

  • 我只是在 && 之后添加了 echo 语句:md5sum test{1,3} | cut -d' ' -f1-2 | xargs bash -c 'diff -u <(echo "$0") <(echo "$1") && echo Success' 但是它不是那么干净...另外我想在不创建新文件的情况下进行比较。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
  • 1970-01-01
  • 2014-05-23
  • 1970-01-01
相关资源
最近更新 更多