入力する:
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のK番目のみをstdoutに出力します。
答え3
GNUの使用sed
:
sed '1~4!d' < input > output
標準sed
:
sed -n 'p;n;n;n' < input > output
使用1
と4
変数$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())