我正在尝试在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
答案 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