문제
좋은 날 회원,
숫자 숫자 (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,
제휴하지 않습니다 StackOverflow