我们需要编写一个脚本,使用包含行数的输入文件, 其中一行具有5厘米(1 | 2 | 3 | 4 | 5)。
假设文件有3行,例如
20 | 30 | 10 | 40
40 | 50 | 60 | 70
5 | 3 | 2 | 1
我们需要逐行读取文件,并检查第二个分度值是否大于第三个值(即30> 10)。如果为true,则打印整行,并打印第二值>第三值的所有行。
需要任何人的帮助。
谢谢。
答案 0 :(得分:1)
这是一种方法。将文件读取到循环中,并针对每一行将其拆分为数组,并在arr[1] > arr[2]
下打印:
#!/bin/bash
while read line; do
# split line on spaces and pipes
IFS='| ' read -r -a arr <<< "$line"
# echo line if second elem > third elem
if [[ ${arr[1]} -gt ${arr[2]} ]]; then
echo $line
fi
done < text
输出:
a | 30 | 20 | 40 | 50
c | 20 | 10 | 30 | 40