我有数百个文件在特定模式中具有名称,我想仅获取文件名的一部分,例如
如果文件名是REE_45K.txt或REE_46B.txt或REE_21K.txt或REE_229N.txt则REE9999G.txt 我想只显示45K 46B,21K,229N,9999G
如果可能请提供Linux和Windows版本命令
findstr _.*. *.* i found this command working for windows , can u verify it
答案 0 :(得分:1)
对于linux上的bash:
#!/bin/bash
filename="REE_45K.txt"
no_ext="${filename%.*}" # "REE_45K"
echo "${no_ext##*_}"
给出45K
答案 1 :(得分:0)
对于linux bash:
for filename in REE_45K.txt REE_46B.txt REE_21K.txt
do
echo $filename |sed 's/REE_\(.*\).txt/\1/g'
done
它给出了:
45K
46B
21K
答案 2 :(得分:0)
以下是在Windows批处理文件中替换字符串的方法。 {var} =%{var}:{find} = {relacement}% 以下是您的示例:
@echo off
set filename="REE_45K.txt"
echo %filename%
set filename=%filename:REE_=%
set filename=%filename:.txt=%
echo %filename%
输出:
"REE_45K.txt"
"45K"