我的目标是在bash中循环遍历CSV文件,我有一些可以正常工作的代码。由于命令立即完成并添加到失败文件中,因此似乎并没有完成cURL。它正在读取URL的单列CSV。
我没有研究任何成功,查看了GREP成功代码等。这只是在MACOS上本地运行的。
INPUT=test.csv
OLDIFS=$IFS
IFS=,
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read col1
do
if curl -L -s "$col1" | grep -q "string"; then
echo "${col1}" >> one.txt
else
echo "${col1}" >> two.txt
fi
done < $INPUT
IFS=$OLDIFS
我也在IF行上尝试了以下方法:
if [[ $(curl -L -s "$col1" | grep -q "string") ]]; then
谢谢
答案 0 :(得分:1)
从标准输入或文件中读取一行 描述符fd作为-u选项的参数提供,第一个 单词被分配给名字,第二个单词被分配给第二个名字 名称,以此类推,带有剩余词及其中间的分隔符 分配给姓氏
由于您仅提供一个名称,因此col1不是第一列,而是整行。
尝试while read col1 leftover
并使用@gboffi的评论建议
答案 1 :(得分:0)
修复了以下问题:
col1=${col1%$'\r'}
-从输出中删除句号。
INPUT=test-sites.csv
OLDIFS=$IFS
IFS=,
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read col1 leftover
do
col1=${col1%$'\r'}
if curl -L "${col1}" | grep -q "string"; then
echo "${col1}" >> one.txt
else
echo "${col1}" >> two.txt
fi
done < $INPUT
IFS=$OLDIFS
谢谢您的评论