gpt4 book ai didi

bash - 打印文件中的每 n 行

转载 作者:行者123 更新时间:2023-11-29 09:33:22 24 4
gpt4 key购买 nike

我正在尝试打印每个 n文件中的第 th 行,但是 n不是常量而是变量。

例如,我想替换 sed -n '1~5p'用类似 sed -n '1~${i}p' 的东西.

这可能吗?

最佳答案

awk 也可以用更优雅的方式做到这一点:

awk -v n=YOUR_NUM 'NR%n==1' file

使用 -v n=YOUR_NUM 表示数字。然后,NR%n==1 恰好在行号为 7n+1 的形式时评估为真,因此它打印该行。

注意使用 awk 有多好:如果你想要 7n+k 形式的行,你只需要做: awk -v n=7 'NR%n==k' 文件

例子

让我们每 7 行打印一次:

$ seq 50 | awk -v n=7 'NR%n==1'
1
8
15
22
29
36
43
50

或者在 sed 中:

$ n=7
$ seq 50 | sed -n "1~$n p" # quote the expression, so that "$n" is expanded
1
8
15
22
29
36
43
50

关于bash - 打印文件中的每 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27837061/

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