我试图在这里实现一些目标,虽然我知道部分步骤,但我并没有成功地将它们放在一起。我正在寻找在多个主机上单次使用的内联命令。让SW存储库文件组织如下:
# comments
PROD_NAME:INSTALL_DIR:OPTIONS
PROD_NAME:INSTALL_DIR:OPTIONS
PROD_NAME:INSTALL_DIR:OPTIONS
现在,假设我们要处理文件并对每个产品执行一些复制操作。因此,我可以将grep
移除到while do
周期中的注释行,在那里我使用awk
将每行分解为产品名称及其路径并将其完成为复制命令。我担心,这对于我的技能水平来说太过于嵌套了。谁愿意分享?
答案 0 :(得分:1)
您可以使用bash
循环执行相同的操作
$ while IFS=: read -r p i o;
do echo "cp $o $p $i";
done < <(grep -v '^#' file)
cp OPTIONS PROD_NAME INSTALL_DIR
cp OPTIONS PROD_NAME INSTALL_DIR
cp OPTIONS PROD_NAME INSTALL_DIR
删除echo以按给定的方式运行。
答案 1 :(得分:0)
可以通过
删除评论grep -v '^#'
对于awk,您必须指定字段分隔符:
awk -f: '{print $1, $2, $3}'
为了制作复制命令,您必须将结果传递给shell。
echo -e '# comments\nNAME:DIR:OPT' |
grep -v '^#' |
awk -F: '{print "cp", $3, $2, $1}' |
sh
更好:读一本书。
或者这个: