具有读取行为的 Bash 内联管道

具有读取行为的 Bash 内联管道

有没有办法通过将分割的当前行重新传输到下一个命令来使该脚本不需要循环?

somefunction | while IFS='_' read -a ENTRY
do
  echo "${ENTRY[0]};${ENTRY[3]}"
done

可以制作一个较短的版本,例如:

somefunction | IFS='_' read -a ENTRY | echo "${ENTRY[0]};${ENTRY[3]}"

谢谢

答案1

您不能像那样管道传输 shell 状态(即变量),但如果我理解您在做什么,您可以使用更合适的工具来完成这项工作:

somefunction | awk -F _ '{print $1 ";" $4}'

相关内容