gpt4 book ai didi

sed - 计算来自不同文件的 3 种类型的分隔符(逗号、分号、竖线)

转载 作者:太空狗 更新时间:2023-10-29 12:09:03 26 4
gpt4 key购买 nike

我正在尝试开发类似的东西。但我的要求有点不同。我想计算第一行和第二行中分隔符的数量。如果两行的分隔符都匹配,则很好,否则需要将文件移至拒绝文件夹。下面是脚本。但在这里我有一个问题,我如何计算不同文件中的 3 个不同的分隔符。例如,我有逗号、分号和竖线分隔符。 sed 命令中的以下脚本如何同时检查 3 种类型的分隔符?

pathname=/opt/interfaces/sample_check/mvfiles/inbox

findresult=$(find $pathname -type f ( -name "messagemulti.csv" -or -name "messagesemi.txt" -or -name "comma2.txt" -or -name "messagepipe.txt" -or -name "tokkalodi.txt" -or -name "ADMC_POSITION-LT3213.csv" -or -name "DMC_CASHFLOW248.csv" -or -name "ADMC_EQBASKET-WEIGHTS_52387.csv" -or -name "ADMC_POSITION-DDD7.csv" -or -name "ADMC_POSITION-DDD7.csv" ))

Count=sed -n 1p $findresult | tr ',' '\n' | wc -l
Count2=sed -n 2p $findresult | tr ',' '\n' | wc -l

echo $Count echo $Count2

if [ $Count != $Count2 ]
then echo "Mis Match"
mv $findresult /opt/interfaces/sample_check/mvfiles/reject
else echo "Match"
exit
fi

最佳答案

如果没有任何定界符是前两行的其他部分,您可以使用这个通用的 GNU awk 脚本:

parse.awk

BEGIN  { FS="[,;|]" }            # Set Field Separators
FNR==1 { count = NF } # Remember Number of Fields from the first line
FNR==2 {
if(count != NF) # If second line has the same number of fields
print "Mismatch: " FILENAME # Report the mismatched file
nextfile # Skip to next input file
}

像这样运行它:

awk -f parse.awk infile1 infile2 ...

这将输出任何计数不匹配的文件。

关于sed - 计算来自不同文件的 3 种类型的分隔符(逗号、分号、竖线),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54942364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com