如何使用 sh 迭代 awk 的每个输出?

Nie*_*ein 3 bash shell awk sh

我有一个test.sh通过文本文件 awks 的文件test.bed

1   31  431
1   14  1234
1   54  134
2   435 314
2   314 414
Run Code Online (Sandbox Code Playgroud)

while read line;do
    echo $line  
    # ... more code ... #
done < <(awk -F '\t' '$1 == 1 {print $0}' test.bed )
Run Code Online (Sandbox Code Playgroud)

bash test.sh作品运行它,但sh test.sh它会产生语法错误。我怎么能用sh而不是做上面的事情bash


它给出的错误是

test.sh: line 5: syntax error near unexpected token `<'
test.sh: line 5: `done < <(awk -F '\t' '$1 == 1 {print $0}' test.bed )'
Run Code Online (Sandbox Code Playgroud)

vid*_*dit 7

进程替换是一个bash扩展 - 未由POSIX. 这个sh兼容..

#!/bin/sh

awk -F '\t' '$1 == 1 {print $0}' test.bed  | while read line; do
echo $line
    # ... more code ... #
done
Run Code Online (Sandbox Code Playgroud)