对于 (file 2) 中 (file 1) 中的文件名中包含的任何字符,awk 的最佳方法是什么?
到目前为止的代码:
$ sed -e 's/.*\ -\ //' -e 's/.mp3$//' File1.txt | while read z; do tit="$z" ; awk -v title="$tit" '{FS = "\t"} $2 ~ title {print $0}' File2.txt ; done
结果; 它正在工作,除非它在文件名中使用 ( 命中文件。
我已经尝试过单引号和双引号,我能想到的一切,仍然没有运气。
File1:命名为“播放列表”,分隔符为:“-”
- Peter Tosh - Na Goa Jail (Bonus Track).mp3
File1 字段为:“艺术家”“标题”
File2:命名为“Master-List”,分隔符为:tab
- Peter Tosh Na Goa Jail 32000 /音乐/Peter Tosh/Peter Tosh - Na Goa Jail (Bonus Track.mp3
File2 字段为:“艺术家”“标题”“比特率”“路径”
使用上述示例...对于“播放列表”中的每个条目
- 使用“播放列表”为 Field1 和 Field2 生成 2 个变量(艺术家标题)
- 在 Master-List 中搜索 $title "Na Goa Jail (Bonus Track).mp3"
- 如果匹配,检查 $artist 是否也匹配
- 如果 $title 和 $artist 匹配,则打印 Master-List 中的第 4 列,否则打印“No Match”。