【发布时间】:2013-02-10 03:37:40
【问题描述】:
我正在使用以下 shell 脚本将一个文件的内容查找到另一个文件中:
#!/bin/ksh
file="/home/nimish/contents.txt"
while read -r line; do
grep $line /home/nimish/another_file.csv
done < "$file"
我正在执行脚本,但它没有显示 CSV 文件中的内容。我的 contents.txt 文件包含诸如 "08915673" 或 "123223" 之类的数字,它们也存在于 CSV 文件中。我做的有什么问题吗?
【问题讨论】:
-
考虑编辑您的问题以包含每个文件中的 2 行以及给定这些输入的预期输出。祝你好运。
-
您上面的脚本没有使用
file变量,而是在那里记录名称。试试while read -r line < $file; do。也就是说,ksh很烂,我还没有检查它对-r的作用,以知道它是否会起作用。此外,grep将期望正则表达式并匹配包含您拥有的数字的任何值,即使 csv 文件中的行有其他前导或尾随数字:您可能需要grep -w或类似的。