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

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

같은

magic_command start 100 lines 5 > b.txt

다음, b.txt

100
101
102
103
104



답변

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

seq 100 104

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

100
101
102
103
104

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

seq 100 104 > my_file.txt

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


답변

리눅스 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


답변

세게 때리다:

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


답변

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

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그에 따라 증가하십시오 .


답변

사용 외에 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 ~]~


답변