【发布时间】:2015-07-04 07:56:33
【问题描述】:
假设我有一个名为 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 中实现这一点?
【问题讨论】:
-
只有 Bash 还是 awk 可用?
-
如果它返回所需的输出并兼容在shell脚本中使用,对我来说就可以了。
-
x="ABC_DE_FGHI_10_JK_LMN.csv"; x=${x#*_*_*_}; echo ${x%_*_*} -
@Cyrus,PRATIK PATIL 更改了文件命名约定,以及为什么我删除了我的答案,所以
x="ABC_DE_FGHI_10.csv"; x=${x#*_*_*_}; echo ${x%_*_*}返回10.csv而不仅仅是他想要的10。但是,将此标记为重复,我想这并不重要。 -
使用
_或.作为分隔符:x="ABC_DE_FGHI_10.csv"; x=${x#*[_.]*[_.]*[_.]}; echo ${x%[_.]*}