Ansible:命令在终端中工作但不是Ansible

时间:2016-07-07 15:17:21

标签: ansible ansible-playbook

awk 'FNR==1{print ""}{print}' *.txt > virtual.txt | mv virtual.txt virtual.csv 

在终端上工作但不是在我将其添加到ansible脚本时。

我最初尝试过:

shell: cd Users/Virtual |awk 'FNR==1{print ""}{print}' *.txt > virtual.txt | mv virtual.txt virtual.csv

它没有用。尝试下面的文字,它找不到文件

- command: chdir=/Users/Virtual awk 'FNR==1{print ""}{print}' *.txt > virtual.txt    
    - shell: "awk 'FNR==1{print ''}{print}' *.txt > virtual.txt" 
    - shell: "mv virtual.txt /Users/virtual.csv"

1 个答案:

答案 0 :(得分:1)

不确定为什么要尝试将输出从一个命令传递到另一个命令...
您通常希望使用&&||一个接一个地执行多个命令 试试这个:

- hosts: localhost
  tasks:
    - shell: "awk 'FNR==1{print \"\"}{print}' *.txt > virtual.txt && mv virtual.txt virtual.csv"
      args:
        chdir: /Users/Virtual