ff_rms_mark_head_gp_20221019569987.dat.gz
ff_rms_sharp_head_20221019569987_full.dat.gz
这里有两种类型的文件。一是full
,多一是gp
,这就是区别。但是,在这种情况下,我需要使用 cut 命令来获取以下详细信息
....
输出:`` Table_Name 应该是:“第一个文件的 mark_head
第二个表应该是“sharp_head”
“两个表之间的差异是“gp”和“full””。表名可能会减少或增加
日期:2022年10月19日
`Table Name` would start from `rms_` till `gp` but if there is no `gp` then till `date`)
The date would be with the following format:
```python
date=2022-10-19
答案1
这是你想要的吗?
确保你被放置在你有 * 的目录中.gz 文件在运行此脚本之前:
#!/bin/bash
for file in ./*.gz; do
echo -e "=========================================="
echo Current file "$file"
fhead=$(cut -d '_' -f3,4 <<< "$file")
sixthCol=$(cut -d '_' -f6 <<< "$file")
if [[ ${sixthCol%%.*} = "full" ]];then
#Table name till date
fdate=$(cut -d '_' -f5 <<< "$file" | awk -v FS='' -v OFS='-' '{print $1$2$3$4,$5$6,$7$8}')
tableName="$(cut -d '_' -f2-4 <<< "$file")_${fdate}"
else
#Table name till gp
fdate=$(cut -d '_' -f6 <<< "$file" | awk -v FS='' -v OFS='-' '{print $1$2$3$4,$5$6,$7$8}')
tableName=$(cut -d '_' -f2-5 <<< "$file")
fi
echo Table_Name: $tableName
echo Head: $fhead
echo Date: $fdate
echo -e "==========================================\n\n"
done
假设您有这些文件:
ff_rms_mark_head_gp_20221019569987.dat.gz
ff_rms_sharp_head_20221019569987_full.dat.gz
如果运行上面的脚本,您将得到以下输出:
==========================================
Current file ./ff_rms_mark_head_gp_20221019569987.dat.gz
Table_Name: rms_mark_head_gp
Head: mark_head
Date: 2022-10-19
==========================================
==========================================
Current file ./ff_rms_sharp_head_20221019569987_full.dat.gz
Table_Name: rms_sharp_head_2022-10-19
Head: sharp_head
Date: 2022-10-19
==========================================
可能Head
并不重要(Date
或许还有 )。如果您想要任何其他特定输出,那么您应该提供有关您真正想要的内容的详细信息。
关于脚本,它适用于任意数量的.gz 文件(两者gp
任一full
)。