我的input.csv
文件数据如下所示。
| 文件名|
| --------------|
| a.c |
| a.cpp |
| a.xml |
| abc.txt |
| abcd.json |
我有另一个textfile.txt
文件,如下所示,依此类推
/data/reports/a.c
/data/reports/dir1/a.cpp
/data/reports/dir2/samples/b.java
/data/reports/dir3/yum/c.json
/data/reports/rate/abcd.json
/data/reports/d.xml
我的input.csv
需要检查文件名是否存在于我的textfile.txt
文件或不,如果存在它需要写在我的outputcsv
文件的B
列说existing
如果不留下为空。对于这个任务,我使用下面的bash脚本。
#!/bin/bash
while IFS=, read -r filename existing || [[ -n "$filename" ]]; do
if grep -q "$filename" textfile.txt; then
matched=$(grep "$filename" textfile.txt)
echo "$filename,$existing,$matched" >> output.csv
else
echo "$filename,$existing," >> output.csv
fi
done < input.csv
但上面的脚本没有写existing
或不写在我的output.csv
文件的B
列。那么问题是什么呢?
预期输出:-
文件名 | 地位 |
---|---|
a.c | 现存的 |
a.cpp | 现存的 |
a.xml | |
abc.txt | |
abcd.json | 现存的 |
任何帮助都非常感谢。
1条答案
按热度按时间os8fio9y1#