如何在Bash中将string =“ Domain_12345_20180821230101.dat”切割为12345_20180821

时间:2018-10-09 11:32:11

标签: linux bash

提供了这种刺激是动态的。如果它是Domain_1234_20180821230101.dat,那么我要1234_20180821。我该怎么办?

即,当Domain_12_20180821230101.dat时,我希望输出为12_20180821

1 个答案:

答案 0 :(得分:-1)

适用于您给出的示例的原始解决方案是:

grep -oP '[0-9]+_[0-9]{8}' <<< "$string"

这将提取任何由可变长度数字,后跟一个下划线和一个8位数字(如果存在)组成的子字符串,否则不返回任何内容。

您可以在grep --helphttps://www.regular-expressions.info/tutorial.html下找到更多信息,以帮助您理解此命令并根据需要对其进行调整。