글쎄, 당신은 sed에서 할 수 있지만 파이썬도 작동합니다.
$ ./reformatfile.py input.txt
0 565:10:1 565:12:1 565:23:1 565:18:1 565:17:1 565:25:1
1 564:7:1 564:12:1 564:13:1 564:16:1 564:18:1 564:40:1 564:29:1 564:15:1
내용은 다음 reformatfile.py
과 같습니다.
#!/usr/bin/env python3
import sys
with open(sys.argv[1]) as fd:
for line in fd:
words = line.strip().split()
pref = words[0]
print(words[1],end=" ")
new_words = [ ":".join([pref,i,"1"]) for i in words[2:] ]
print(" ".join(new_words))
어떻게 작동합니까? 특별히 특별한 일은 없습니다. 첫 번째 명령 줄 인수를 파일로 읽고 각 줄을 "단어"또는 개별 항목으로 나눕니다. 첫번째 단어는 pref
가변적 이되고 , 공백으로 끝나는 stdout second (words [1]) 항목에 인쇄합니다. 다음으로리스트 이해를 통해 새로운 "단어"세트를 구성 .join()
하고 임시 pref, 각 단어 및 string리스트에서 기능합니다 "1"
. 마지막 단계는 그것들을 출력하는 것입니다