输入:
1
hgh
h2b
h4h
2
ok
koko
lkopk
3
uh
ju
nfjvn
4
预期输出:
1
2
3
4
因此,我只需要在输出文件中包含该文件的第 1 个、第 5 个、第 9 个、第 13 个值。这个怎么做?
答案1
使用 AWK:
awk '!((NR - 1) % 4)' input > output
弄清楚它是如何工作的留给读者作为练习。
答案2
使用split
(GNU coreutils):
split -nr/1/4 input > output
-n
生成CHUNKS
输出文件
并CHUNKS
作为
r/K/N
使用循环分配,仅将 N 中的 Kth 输出到 stdout,而不分割行/记录
答案3
使用 GNU sed
:
sed '1~4!d' < input > output
与标准sed
:
sed -n 'p;n;n;n' < input > output
使用1
and 4
in$n
和$i
变量:
sed "$n~$i!d" # GNU only
awk -v n="$n" -v i="$i" 'NR >= n && (NR % i) == (n % i)'
答案4
Python版本,仅供娱乐:
with open('input.txt') as f:
for i, line in enumerate(f.readlines()):
if i%4 == 0:
print(line.strip())