파일에서 한 줄에 하나씩 일련의 숫자 만들기


28

주어진 숫자에서 시작하여 한 줄에 하나씩 일련의 숫자 파일 인 얇은 공기를 생성하는 방법이 있습니까?

같은

magic_command start 100 lines 5 > b.txt

다음, b.txt

100
101
102
103
104

.txt라고 불필요
ixtmixilix

답변:


48

이에 대한 명령이 이미 있습니다 :

seq 100 104

이 숫자를 별도의 줄에 인쇄합니다.

100
101
102
103
104

따라서이 출력을 파일로 보내십시오.

seq 100 104 > my_file.txt

그리고 seq 100 2 104즉, 두 단위로 인쇄됩니다 : 100, 102,104


wooooooooooooooooooooooooooooooooooooooowwwwwwwwwwwwww, 당신은 천재입니다. 그게 다야. 나는 매 초마다 유닉스를 더 좋아합니다! 감사.
SpaceDog

seq와 같은 작은 보석에 대해 배울 수있는 곳이 있습니까? 나는 일련의 숫자, 같은 텍스트 라인 x 번을 포함하는 파일, 문자 "a, b, c, d .."를 생성 할 수있는 명령과 같이 얇은 공기로 물건을 만들 수있는 명령에 관심이 있습니다. 그. 감사합니다
SpaceDog

@DigitalRobot : 언젠가는 펄 원 라이너를 작성하는 것을 알게 될 것입니다.
Cascabel

1
@SpaceDog 당신의 사랑이 잘못되었습니다. seq유닉스가 아닌 GNU Coreutils에서 온 것입니다. GNU는 GNU가 유닉스가 아님을 의미합니다!
Kaz

12

리눅스 seq는 정확히 그 명령을 제공 합니다. seq명령 이 없으면 쉬운 한 줄짜리입니다.

i=100; while [ $i -le 104 ]; do echo $i; i=$((i+1)); done >b.txt

또는 ksh / bash / zsh

for ((i=100; i<=104; i++)); do echo $i; done >b.txt

또는 zsh

print -l {100..104} >b.txt

3
나는 매일 zsh를 점점 더 좋아합니다.
Christian Mann

1
@Gilles 첫 번째 예제는 증가하지 않기 때문에 영원히 계속됩니다 $i.
jamesbtate

답변의 그 종류가 진짜 보석이 - 한 질문에 대답의 영업 이익은 실제로 ( '내가, 내가 XYZ 수 없도록 서열이없는') 질문 할 수 없었을 것이다
ixtmixilix

7

세게 때리다:

printf '%s\n' {100..105}

펄 :

perl -le 'print for 100..104'

기원전:

echo 'for (i = 100 ; i <= 104 ; ++i) i' | bc

dc :

echo '100 104 sb [p 1 + d lb !<m] sm lm x' | dc

+1 어느 누구도 이전과 같이 bc 또는 dc를 사용하는 것을 본 적이 없습니다.
ixtmixilix

그리고 그것은 당신의 DC 답변이 드물게
지루하고 공감

불필요하게 복잡했지만 의도적으로는 아니 었으므로 이제 단순화했습니다.
피터 존 Acklam

1

당신이 그들 앞에 공간을 신경 쓰지 않는다면 :

echo -e {100..104}\\n >numbers-file.txt

공간이 없지만 추가 명령이있는 경우 :

echo {100..104} | sed 's/ /\n/g' >numbers-file.txt

보너스 vim 명령 편집 (open vim) :

i100[esc]qqyyp[ctrl-a]q2@q:w numbers-file.txt

숫자가 많을수록 2그에 따라 증가하십시오 .


1
printf (1)을 사용하여 줄의 시작 부분에 공간을 확보 할 수 없습니다.printf '%s\n' {100..104}
camh

1

사용 외에 seq, while, for, printf, perl, echo앞의 예에서와 같이, 당신은 또한 파이썬을 사용할 수 있습니다

python -c "print list(range(100,105))"

예:

[user@linux ~]~ python -c "print list(range(100,105))"
[100, 101, 102, 103, 104]
[user@linux ~]~ 

한 줄에 하나씩 일련의 숫자를 만들고 ... 그리고 btw는 python2에서만 작동합니다.
don_crissti
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.