小编Dyl*_*zie的帖子

将换行符分隔的列表保存到多个 bash 变量中

我对 shell 脚本比较陌生,正在编写一个脚本来组织我的音乐库。我使用 awk 来解析 id3 标签信息并生成一个换行符分隔列表,如下所示:

Kanye West
College Dropout
All Falls Down
Run Code Online (Sandbox Code Playgroud)

我想将每个字段存储在一个单独的变量中,这样我就可以轻松地编写一些 mkdir 和 mv 命令。我尝试通过管道输出,IFS=$'\n' read artist album title但每个变量仍然为空。我愿意从 awk 生成不同的输出,但我仍然想知道如何使用 bash 解析换行符分隔的列表。

编辑:

事实证明,通过直接通过管道read进行:

id3info "$filename" |  awk "$awkscript" | {read artist; read album; read title;}
Run Code Online (Sandbox Code Playgroud)

不管用。它导致变量存在于不同的范围内。我发现使用herestring效果最好:

{read artist; read album; read title;} <<< "$(id3info "$filename" |  awk "$awkscript")"
Run Code Online (Sandbox Code Playgroud)

bash shell awk

1
推荐指数
1
解决办法
1342
查看次数

标签 统计

awk ×1

bash ×1

shell ×1