gpt4 book ai didi

bash - 按给定顺序重新排序文件行

转载 作者:行者123 更新时间:2023-12-05 09:24:07 30 4
gpt4 key购买 nike

我有一个文档 A,其中包含 n 行。我还有一个 n 整数序列,所有这些整数都是唯一的并且 <n。我的目标是创建一个文档 B,其内容与 A 相同,但根据给定的顺序重新排序了行。

示例:

一个:

Foo
Bar
Bat

序列:2,0,1(意思是:首先是第 2 行,然后是第 0 行,然后是第 1 行)

输出(B):

Bat
Foo
Bar

在此先感谢您的帮助

最佳答案

另一种解决方案:

您可以通过以下方式创建序列文件(假设序列以逗号分隔):

echo $sequence | sed s/,/\\n/g > seq.txt

然后,就做:

paste seq.txt A.txt | sort tmp2.txt | sed "s/^[0-9]*\s//"

这是一个 bash 函数。顺序可以用任何东西分隔。

用法:schwartzianTransform "A.txt"2 0 1

function schwartzianTransform {
local file="$1"
shift
local sequence="$@"
echo -n "$sequence" | sed 's/[^[:digit:]][^[:digit:]]*/\
/g' | paste -d ' ' - "$file" | sort -n | sed 's/^[[:digit:]]* //'
}

关于bash - 按给定顺序重新排序文件行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15639888/

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