假设我有一个名为ABC_DE_FGHI_10_JK_LMN.csv的文件。我想借助ID位置和文件名分隔符从文件名中提取ID,即10。我有两个输入
File-name_ID_Position=4; [since 10 is at fourth position in file-name]
File-name_Delimiter="_";
此处ID可以是数字或字母数字。那么如何借助上面两个输入从上面的文件中提取10。如何在bash中实现这一点?
答案 0 :(得分:2)
我没有在bash中编写正则表达式,而是使用awk:
echo 'ABC_DE_FGHI_10_JK_LMN.csv' | awk -F_ -v pos=4 '{print $pos}'
或者如果你想让点也是一个分隔符(需要GNU awk):
echo 'ABC_DE_FGHI_10_JK_LMN.csv' | awk -F'[_.]' -v pos=4 '{print $pos}'