输入:
1
hgh
h2b
h4h
2
ok
koko
lkopk
3
uh
ju
nfjvn
4
Run Code Online (Sandbox Code Playgroud)
预期输出:
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
所以,我只需要输出文件中文件的第 1、5、9、13 个值。这该怎么做?
Ste*_*itt 29
使用 AWK:
awk '!((NR - 1) % 4)' input > output
Run Code Online (Sandbox Code Playgroud)
弄清楚这是如何工作的,留给读者作为练习。
Fre*_*ddy 23
使用split (GNU coreutils):
split -nr/1/4 input > output
Run Code Online (Sandbox Code Playgroud)
-n生成CHUNKS输出文件并且CHUNKS作为
r/K/N 使用循环分配,只将 N 的第 K 个输出到标准输出而不拆分行/记录Sté*_*las 22
使用 GNU sed:
sed '1~4!d' < input > output
Run Code Online (Sandbox Code Playgroud)
标准sed:
sed -n 'p;n;n;n' < input > output
Run Code Online (Sandbox Code Playgroud)
with1和4in$n和$i变量:
sed "$n~$i!d" # GNU only
Run Code Online (Sandbox Code Playgroud)
awk -v n="$n" -v i="$i" 'NR >= n && (NR % i) == (n % i)'
Run Code Online (Sandbox Code Playgroud)
添加强制性的 perl 解决方案:
perl -ne 'print if $. % 4 == 1' input > output
Run Code Online (Sandbox Code Playgroud)