Unix 基于grep的近似匹配
我需要创建一个脚本,循环遍历目录中的文件,检查文件名是否在“list.txt”中,然后处理它。我的问题是文件名是动态的,因为它有时间戳 有没有办法在unix中grep近似匹配 样品Unix 基于grep的近似匹配,unix,grep,matching,Unix,Grep,Matching,我需要创建一个脚本,循环遍历目录中的文件,检查文件名是否在“list.txt”中,然后处理它。我的问题是文件名是动态的,因为它有时间戳 有没有办法在unix中grep近似匹配 样品 list.txt SAMPLE_REPORT_1 SAMPLE_REPORT_2 报告文件名 SAMPLE_REPORT_1_20180416121345.csv SAMPLE_REPORT_2_20180416121645.csv 我需要检查文件名是否在list.txt中。解决方案: for f in *.cs
list.txt
SAMPLE_REPORT_1
SAMPLE_REPORT_2
报告文件名
SAMPLE_REPORT_1_20180416121345.csv
SAMPLE_REPORT_2_20180416121645.csv
我需要检查文件名是否在list.txt中。解决方案:
for f in *.csv; do
if grep -qx "${f%_*.csv}" list.txt; then
# processing file $f
fi
done
很抱歉我的意思是“目录中的文件”。更正了我的问题。这很有效。谢谢我可以问一下,如果我也需要循环使用xls文件,如何处理吗?我已经在{*.csv,*.xls*}中获得了f的这部分
。我想知道如何在这一行中添加xlsgrep-qx“${f%*.csv}”
我想我是用这个grep-qx-e“${f%*.csv}”-e“${f%*.xls*}”得到的