我正在尝试使用 GNU Parallel 根据 CSV 文件中的值执行命令。我的 CSV 文件有多列,每行第 5 列的值是一个看起来像
'${OUTDIR}/test'
的字符串。
这是我的 CSV 外观的示例:
col1,col2,col3,col4,'${OUTDIR}/test',col6
我想使用 GNU Parallel 对第五列的值运行 mkdir -p,将
${OUTDIR}
解释为实际的 shell 变量。例如,如果 OUTDIR=/tmp
,则命令应作为 mkdir -p /tmp/test
运行。
我尝试了以下命令,但它没有解释 ${OUTDIR}:
parallel --colsep ',' 'mkdir -p {5}' :::: data.csv
制作:
mkdir -vp \'\$\{OUTDIR\}/test\'
mkdir: created directory ''\''${OUTDIR}'
mkdir: created directory ''\''${OUTDIR}/test'\'''
如何让 GNU Parallel 解释 CSV 中字符串值中的 ${OUTDIR}?我尝试过使用
eval mkdir -p {5}
但这并不能像我希望的那样处理引用。