Linux 中取中间值可以使用以下几种方法:
1. `sort` 命令:
bash
# 假设数字存储在 numbers.txt 文件中
cat numbers.txt | sort -n | awk 'NR==int(NR/2)+1'
这个命令首先使用 `sort -n` 对数字进行排序,然后使用 `awk` 取中间位置的数字。如果数字个数为偶数,会返回中间两个数的平均值。
2. `awk` 命令:
bash
# 假设数字存储在 numbers.txt 文件中
awk '{ arr[i++]=$1 } END { print arr[int(i/2)] }' numbers.txt
这个命令使用 `awk` 将数字存储在数组 `arr` 中,然后在 `END` 块中取中间位置的值。
3. `median` 命令 (需要安装 `moreutils` 软件包):
bash
# 假设数字存储在 numbers.txt 文件中
cat numbers.txt | median
这个命令直接使用 `median` 命令取中间值,不过需要先安装 `moreutils` 软件包。
4. `Python` 脚本:
python
with open('numbers.txt', 'r') as f:
numbers = [int(x) for x in f.readlines()]
numbers.sort()
n = len(numbers)
if n % 2 == 0:
median = (numbers[n//2-1] + numbers[n//2]) / 2
else:
median = numbers[n//2]
print(median)
这个 Python 脚本读取数字文件,对数字进行排序,然后计算中间值。
以上是一些常用的获取中间值的方法,可以根据具体需求选择使用。
查看详情
查看详情