2013-02-26 153 views
0

我试图合并csv的第二个字段与diff文件中的所有id。 codes.csv有2个字段:ID,说明。我在第二个cat上不断收到错误。Bash合并2个文件有条件

cat: codes.cvs: No such file or directory. 

该文件确实存在,我正在从与codes.csv相同的目录运行该脚本。

for i in `cat diff.txt`; 
do 
for j in `cat codes.cvs`; 
do 
    id = `sed "$j"`; 
    desc = `sed "?=$j"`; 
    if [$i == $id] 
    then 
    echo "$id $desc" 
    fi 
done; 
done; 

任何想法我在做什么错在这里?

+0

好运气这... ...更好地使用真正的编程语言和CSV解析器 – 2013-02-26 16:37:56

+2

你肯定'codes.cvs'不应该是'codes.csv'? – Buggabill 2013-02-26 16:42:11

+0

哇....这是非常令人沮丧的。谢谢。 – ExceptionLimeCat 2013-02-26 16:45:23

回答

1

看起来像一个简单的错字。 codes.cvs应该是codes.csv,因为您表示该名称在其他地方。

for i in `cat diff.txt`; 
do 
for j in `cat codes.csv`; 
do 
    id=`sed "$j"`; 
    desc=`sed "?=$j"`; 
    if [ $i == $id ] 
    then 
    echo "$id $desc" 
    fi 
done; 
done; 
+1

'test'命令后不需要空格吗?即'['。在'=' – user000001 2013-02-26 16:45:02

+0

之前和之后应该没有空格,我确实相信...已更新。 – Buggabill 2013-02-26 16:48:22

+0

“=”等同于“==”。请参阅http://tldp.org/LDP/abs/html/comparison-ops.html – Buggabill 2013-02-26 16:51:43