我想编写一个脚本来:
- 读取标准输入上的文本流
- 在 stderr 上每 10 行打印一次
- 在标准输出上打印随机*行
我试过了
#!/bin/bash
count=0
while IFS= read -r line; do
awk '{if(NR%3==0) print $line}' >&2
awk '{if(( RANDOM % 2 )) print $line}' >&1
done
但是,RANDOM 不起作用。 这里有什么问题吗?如何解决这个问题?
最佳答案
在使用 RANDOM bash 变量值之前,您必须将其设置为 awk 变量。随机线必须类似于:
awk -v random="$RANDOM" -v aline="$line" 'BEGIN {if(random % 2) print aline}' >&1
关于linux - 了解标准输入、标准错误、标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60296371/