【发布时间】:2009-10-09 12:13:14
【问题描述】:
这是我的场景。 我有两个文件,其中每个记录的 3-25 个字符是一个标识符。基于此,如果它们的标识符匹配,我需要比较它们并用新文件数据更新旧文件。标识符以 01 开头。 请看下面的脚本。 这给出了一些错误,因为“第 12 行的参数预期我无法理解。
#!/bin/ksh
while read line
do
c=`echo $line|grep '^01' `
if [ $c -ne NULL ];
then
var=`echo $line|cut -c 3-25`
fi
while read i
do
d=`echo $i|grep '^01' `
if [ $d -ne NULL ];
then
var1=`echo $i|cut -c 3-25`
if [ $var -eq $var1 ];
then
$line=$i
fi
fi
done < test_monday
done < test_sunday
请帮帮我提前谢谢
【问题讨论】:
-
@ALN,您能否也发布一些示例数据,以便更容易理解需求。谢谢
-
如果您发布一些示例数据,您不仅可以通过 awk、sed、perl 等获得 shell 脚本解决方案,还可以获得比 shell 脚本更简单的解决方案。
-
第一个文件是这样的 011111111111111111111+
012554565645645455555+ .... ... ... 第二个文件是 011111111111111111111111+ 015456565635数据> .... ...所以我将两个文件从 1-25 个字符(最多 + sybol)作为键进行比较,如果第二个文件匹配记录 ..我必须在第一个文件中替换它...或者只是将其附加到第一个文件.........
标签: unix shell filecompare