繁体   English   中英

使用bash脚本对CSV文件进行排序和差异

[英]Sorting and diff of CSV file using bash script

我正在尝试比较两个排序的 csv 文件:

for filename in `ls "$1"/dev`
do
  dev_file="$1/dev/$filename"
  ccu_file="$1/ccu/$filename "
  echo "diff of $dev_file ...and......$ccu_file"
  result=$(diff <(sort $dev_file) <(sort $ccu_file ))
  if [ $? -eq 0 ]
    then
        echo "files are the same"
  else
        echo "files are different"
        echo "$result"
  fi
done

看来,有语法错误:

test.sh: command substitution: line 6: syntax error near unexpected token `('
test.sh: command substitution: line 6: `diff <(sort $dev_file) <(sort $ccu_file )'

任何帮助,将不胜感激。 谢谢你。

您可以像这样比较两个文件:

if cmp -s file1.csv file2.csv; then
    echo files are identical
else
    echo files are different
fi

从您的脚本来看,您似乎想将dev/每个 csv 文件与ccu/的同名文件进行ccu/ 你可以这样做:

#!/bin/bash

cd "${1:?}/dev" && [[ -d ../ccu ]] || exit 1

for i in *.csv; do
    if [[ -e ../ccu/"$i" ]]; then
        if cmp -s "$i" ../ccu/"$i"; then
            echo files "$i" and ../ccu/"$i" are identical
        else
            echo files "$i" and ../ccu/"$i" are different
        fi
    else
         echo "../ccu/$i: not found" >&2
    fi
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM