gpt4 book ai didi

linux - 水平连接所有文件且仅连接特定列

转载 作者:太空狗 更新时间:2023-10-29 11:12:47 25 4
gpt4 key购买 nike

在 linux 中,有没有办法将目录中以 .out 结尾的所有文件连接到一个文件中?如果最终输出文件让它们水平相邻而不是垂直相邻,那就更好了。更进一步,是否可以只从每个文件中获取第 6 列(每列以空格分隔)。

我知道我一直在 powershell 中这样做。想知道 linux 是否可以做到这一点?

我知道我可以用

paste *.out > total.out

但是我如何粘贴第 6 列,它们之间用空格分隔?

最佳答案

使用带有临时文件的 bash 和 awk 过滤每个 *.out 文件的第六列。

#!/bin/bash

declare -a TEMPS

for name in *.out; do
TEMPS+=($(mktemp $name.XXXXXXXX))
awk '{ print $5 ;}' $name >${TEMPS[-1]}
done

paste -d ' ' "${TEMPS[@]}"

# Remove tmp files
rm "${TEMPS[@]}"

使用来自@daniel 的示例文件输出

6 18 30
12 24 36

关于linux - 水平连接所有文件且仅连接特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37356847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com