执行bash代码时出错

时间:2017-03-16 10:55:51

标签: bash

我正在尝试在bash中粘贴两个剪切,但是当我尝试在循环中运行时它会抛出错误Syntax error: "(" unexpected。但是相同的代码正在处理单个文件。任何人都可以帮助我。

这是有效的

paste -d,  <(cut -d, -f -2 IE3BW0047A_03012017000949.csv) <(rev IE3BW0047A_03012017000949.csv | cut -d, -f -7 | rev)

但循环执行无法正常工作

for filename in *.csv; do
    paste  -d , < (cut -d, -f -2 "$filename") < (rev "$filename" | cut -d, -f -7 | rev) > ${tgt_wd}/"$filename"
done

2 个答案:

答案 0 :(得分:3)

流程替换中<(之间不应有空格:

for filename in *.csv; do
    paste  -d , <(cut -d, -f -2 "$filename") <(rev "$filename" | cut -d, -f -7 | rev) > ${tgt_wd}/"$filename"
done

答案 1 :(得分:1)

我把它变成了tmp文件并且有效。

#!/bin/bash

for filename in *.csv; do
    cut -d, -f -2 "$filename" > 1_"$filename"
    rev "$filename" | cut -d, -f -7 | rev > 2_"$filename"
    paste  -d, 1_"$filename" 2_"$filename" > "$tgt_dir"/"$filename"
    rm 1_"$filename" 2_"$filename"
done