Bash 填充更改项目的填充
我目前正在解析一些网站,以提高我的Unix Bash技能。 已提取一个具有以下格式的文件Bash 填充更改项目的填充,bash,Bash,我目前正在解析一些网站,以提高我的Unix Bash技能。 已提取一个具有以下格式的文件 la-que-no-podia-capitulo-1 la-que-no-podia-capitulo-25 la-que-no-podia-capitulo-30 我想走到这一步 la-que-no-podia-capitulo-001 la-que-no-podia-capitulo-025 la-que-no-podia-capitulo-030 有人能帮我吗? 我尝试过不同的方法: Bash R
la-que-no-podia-capitulo-1
la-que-no-podia-capitulo-25
la-que-no-podia-capitulo-30
我想走到这一步
la-que-no-podia-capitulo-001
la-que-no-podia-capitulo-025
la-que-no-podia-capitulo-030
有人能帮我吗?
我尝试过不同的方法:
x='a-que-no-me-dejas-capitulo-10'
re='((([[:alpha:]]+(-))+)[[:digit:]]+)'
if [[ $x =~ $re ]]
then
echo The regex matches!
echo ${BASH_REMATCH[*]}
fi
(杠杆作用)
但不幸的是,它没有拆分最后一个数字
awk -F'-' '{ printf "%04d: \n", $NF }' output_downloads >output_downloads2
head output_downloads2
0001:
0002:
0003:
0004:
0050:
我无法提取第一部分
awk'{match($0,/(.-)([:digit:]+)$/,m);printf(“%s%03d\n”,m[1],m[2])}输入文件
以下是实际的awk脚本:
{
# Regex match whole line with 2 capture groups
match($0, /(.*-)([[:digit:]]+)$/, m)
# Format print both captured groups
printf("%s%03d\n", m[1], m[2])
}
与Bash ERE一起:
而IFS=read-r | |[[$REPLY]];做
#正则表达式将整行与2个捕获组匹配
[[$REPLY=~(.-)([[:digit:]+)$]|
#格式化打印两个捕获的组
printf“%s%03d\n”${BASH\u重新匹配[1]}“${BASH\u重新匹配[2]}”
用awk完成
awk'{match($0,/(.-)([:digit:]+)$/,m);printf(“%s%03d\n”,m[1],m[2])}输入文件
以下是实际的awk脚本:
{
# Regex match whole line with 2 capture groups
match($0, /(.*-)([[:digit:]]+)$/, m)
# Format print both captured groups
printf("%s%03d\n", m[1], m[2])
}
与Bash ERE一起:
而IFS=read-r | |[[$REPLY]];做
#正则表达式将整行与2个捕获组匹配
[[$REPLY=~(.-)([[:digit:]+)$]|
#格式化打印两个捕获的组
printf“%s%03d\n”${BASH\u重新匹配[1]}“${BASH\u重新匹配[2]}”
完成echo“la-que-no-podia-capitulo-30”| awk'-F-'-v of s=“-”{end=$NF;$NF=“”;printf(“%s%03d\n”,$0,end)}
非常感谢Shelleter<代码>echo“la-que-no-podia-capitulo-30”| awk'-F-'-v of s=“-”{end=$NF;$NF=“”;printf(“%s%03d\n”,$0,end)}
非常感谢Shelleter!