입력하다:
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())