Perl在替换引号之间引起的单词问题

时间:2019-05-27 16:16:14

标签: regex perl

这是我的音乐脚本的最小版本。这段代码不能正确地用引号引起来。

find /PATH/ -type f -exec basename "{}" + 2>/dev/null \
| cut -f1 -d '-' \
| LC_ALL=C sort -f \
| gsed -e "s/\b\(.\)/\u\1/g" \
| uniq -c -i \
| sed -e 's/\ $/;/' -e 's/\./_/g' \
| awk '{numero=$1;$1=""}{print $0,numero}' \
| sed 's/^ *//' \
| perl -pe 's/^(\w+ \w+ \w+ )(w.)/\1;/g' \
> /PATH/MYMUSIC.txt;

< <( sed -e 's/   /;/' -e 's@\([0-9]\+\) \(.*\)@\2;\1@' /PATH/MYMUSIC.txt ) \
awk -F";" '{a[$1]+=$NF} END {for(i in a)print i": "a[i];}' \
| LC_ALL=C sort -f \
| sed -e 's/_/\./g' -e 's/\__;/\ ;/' \
| pr -3 -o 2 -w 200 -l 57;

这些是文件夹中有问题的文件的示例:

Eddie 'Big Blues' Carson - Dip My Dipper.mp3

Eddie 'Big Blues' Carson - Mustang Sally.mp3

Eddie 'Big Blues' Carson w. Bobby Smith Big Sounds - Walkin' and cryin'.mp3

所需的结果是:

Eddie 'Big Blues' Carson: 3

但是使用此代码,结果是:

Eddie 'Big Blues' Carson: 2

Eddie 'Big Blues' Carson w. Bobby Smith Big Sounds: 1

如果我使用",结果不会改变。

有人可以帮助我吗?

我运行OsX。谢谢

0 个答案:

没有答案