2013-07-04 3 views
0

나는 많은 텍스트 파일을 포함하고있는 디렉토리 (Confidential)를 가지고있다. I 번째 열이 오른쪽 맞춤 또 다른 TEXTFILE (있는 Summary.txt) textwidth 말하자면, 80 및 다음 형식화하는bash를 사용하여 파일 포맷하기

Secret-file1   - This file describes various secret activities of 
         organization Secret-Organization-1 
Secret-file2   - This file describes various secret activities of 
         organization Secret-Organization-2. This summarizes 
         their activities from year 2001. 
Secret-file3   - This file describes various secret activities of 
         organization Secret-Organization-3. This summarizes 
         their activities from year 2024. 

으로 생산하고자

:- Secret-file1.txt 
    :- Secret-file2.txt 
    :- Secret-file3.txt 
기밀

해당 텍스트 파일의 첫 번째 행에서 복사됩니다. 예를 들어, "Secret-file1.txt"는 다음과 같습니다.

This file describes various secret activities of organization Secret-Organization-1. 
XXXXXXXXXXXXXXXXX BUNCH of TEXT TILL EOF XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 

어떻게하면됩니까? bash (예 : sed, awk, grep, your-prefered-bash-built-in)에서 다양한 옵션을보고 있습니다.

감사

+4

죄송합니다. 잠재적 해결책은 * secret *입니다. – devnull

+0

각 파일 ('head' 또는'sed')의 첫 번째 줄을 추출한 다음 들여 쓰기 준비가되어있는 것처럼 보입니다 ('fmt'? 표준 단어 래퍼가 명확하지 않습니다) , 형식화 된 각 출력을 처리하도록 정렬하여 첫 번째 행 앞에 파일 이름과 대시를두고 나머지를 해당 공백 수만큼 둡니다. –

답변

1

이것은 당신이 당신은 내가 당신에게 가능한 비틀기를 떠날거야 시도 무엇을 쓰지 않았기 때문에, 내 마음에 온 간단한 일이지만 나는 이것이 좋은 생각 시작)

for file in "*"; do echo "$file\t\t$(head -1 "$file")"; done 
1

당신은 파이썬의 몇 줄의 청결이 작업을 수행 할 수 있습니다

#!/usr/bin/env python3.3 

import glob 
import textwrap 
from os.path import basename 

INDENT=' ' * 22 

for filename in glob.glob("Confidential/*.txt"): 
    with open(filename, 'r') as secret: 
     print("{:20s}- {}\n".format(
      basename(filename), 
      '\n'.join(textwrap.wrap(secret.readline(), 
            width=74, 
            initial_indent=INDENT, 
            subsequent_indent=INDENT)).strip()), 
      end="") 

인쇄

Secret-file1.txt - This file describes various secret activities of 
         organization Secret-Organization-1 
Secret-file2.txt - This file describes various secret activities of 
         organization Secret-Organization-2. This summarizes 
         their activities from year 2001. 
Secret-file3.txt - This file describes various secret activities of 
         organization Secret-Organization-3. This summarizes 
         their activities from year 2024. 

그것은 쉘 아니에요, 그러나 빨리 당신이 프로세스의 무리를 분기하지 않는 때문에있을거야, 당신은 문자열 형식과 시간의 톤을 지출하지 않을거야 쓰기가 루프 the textwrap module을 사용하면 텍스트를 들여 쓰기 할 수 있습니다.

0

Unix에서 fmt 명령을 살펴보십시오. 문서를 특정 너비로 ​​다시 포맷하고 들여 쓰기를 제어 할 수도 있습니다.

오래전부터 사용 해왔다. 그러나 들여 쓰기, 너비 설정 등을 수행 할 수 있습니다. 원하는대로 할 수있는 느낌이 있습니다.

또 다른 명령은 pr입니다. pr은 기본적으로 텍스트를 페이지로 분할하고 페이지 번호를 추가하지만 모든 내용을 해제 할 수 있습니다. 이 명령은 원하는대로 텍스트를 munge 할 수있는 또 다른 명령입니다.

관련 문제