문제

좋은 날 회원,

숫자 숫자 (2000 행에 가까운) 행이있는 입력 파일이 있습니다. 그림과 같이 쉼표.

예 : input.txt

00000000000001303275310752

00000000000001827380519015

00000000000000800081610361

00000000000000449481894004

00000000000000449481894004

00000000000001812612607514

예상 결과 : newfile.txt

7531075,

8051901,

8161036,

8189400,

8189400,

1260751,

나는 'sed'와 같은 것이 내 문제를 해결하는 데 사용될 수 있다고 생각하지만, 이것을 달성하는 방법은 잘 모르겠습니다. Solaris 5.10에서 실행되는 기계에 연결되어 누군가가 간단한 설명으로 저를 안내해 주면 감사합니다.

문안 인사,

초심자.

도움이 되었습니까?

해결책

고정 너비 입력의 경우 시도해보십시오.

cut -c19-26 input.txt | sed 's/$/,/'

즉, 입력 TXT의 19 ~ 26 특성을 추출한 다음 선 끝을 쉼표로 바꾸십시오.

가변 길이 라인이 있으면 약간 다른 것이 필요합니다.

다른 팁

당신은 다음과 같이 선도적 인 0을 자울 수 있습니다.

sed 's/^0*//g'

따라서 :

sed 's/^0*//g' input.txt | sed 's/$/,/'

작동해야합니다.

노력하다:

perl -pe 's/^.*(\d{7})\d$/$1,/' < input.txt

또는 정규 표현을 좋아하지 않는 경우 :

perl -pe '$_ = substr($_,-9,-2) . ",\n"' < input.txt

이것은 모든 고정 또는 가변 길이 라인에 대해 작동합니다.

파이썬의 해결책은 다음과 같습니다. 직관적이어야합니다.

$ cat data2
00000000000001303275310752
00000000000001827380519015
00000000000000800081610361
00000000000000449481894004
00000000000000449481894004
00000000000001812612607514

$ cat digits.py
import sys
for line in sys.stdin:
    print '%s,' % (line[-9:-2])

$ python digits.py < data2
7531075,
8051901,
8161036,
8189400,
8189400,
1260751,
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top