linux – 使用regexp进行Bash排序

我有大约100个文件,具有以下语法
ahfsdjfhdfhj_EPI_34_fdsafasdf
asdfasdf_EPI_2_fdsf
hfdjh_EPI_8_dhfffffffffff
ffffffffffasdfsdf_EPI_1_fyyy44

...

总有EPI_NUMBER.我该如何按这个数字排序?

解决方法

从您的示例中可以看出,分隔符为_,文本EPI_nnn在分隔符_后位于相同位置.如果总是如此,那么您可以使用以下命令对文件进行排序:
sort -n -t "_" -k 3 file.txt

更新:

如果EPI_文本的位置未修复,则使用以下shell命令:

sed 's/^\(.*EPI_\)\(.*\)$/\2##\1/' file.txt | sort -n -t "_" -k1 | sed 's/^\(.*\)##\(.*\)$/\2\1/'

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...