multipls 파일의 시작 부분에 명령 세트를 추가하십시오.

multipls 파일의 시작 부분에 명령 세트를 추가하십시오.

파일의 일부를 다른 것으로 바꾸는 스크립트를 작성해야 합니다. 수백 개의 파일을 처리하고 있습니다.

여러 텍스트 파일에 추가할 명령 목록이 있습니다. 하지만 파일의 시작 부분에는 공통 명령이 있습니다.

나는 단순히 명령 목록을 내 명령 목록으로 바꾸고 싶습니다. 자세한 내용은 아래에 나와 있습니다.

원본 파일

%apj=E:\Work\Informatin\Regarding work\DND.apj
%mem=4GB
%nprocshared=2
#p oyu opsd qtnv/1-a(x) kglgg=uioewr

Application 

0 1
 X                 -3.66480600    0.10278400   -0.00655500
 Y                 -4.11487100    1.45621700   -0.05226200
 Z                 -5.10300200    1.90042600    0.83864800

 1 2 1.0 13 1.0 23 1.0
 2 3 1.5 4 1.5
 3 5 1.5 6 1.0
 4 7 1.5 8 1.0

교체에 사용하고 싶은 문자

%apj=D:\Store\Data\Diff All\SMC.apj
%mem=800MB
%nprocshared=4
#p udf AMER hbvn/3-b(n) huggh=whea

Use

0 1
 X                 -3.66480600    0.10278400   -0.00655500
 Y                 -4.11487100    1.45621700   -0.05226200
 Z                 -5.10300200    1.90042600    0.83864800

명령 목록으로 바꾼 후 빈 줄 뒤에 있는 문자, 즉 다음 줄을 삭제하고 공백을 유지하고 싶습니다.

1 2 1.0 13 1.0 23 1.0
2 3 1.5 4 1.5
3 5 1.5 6 1.0
4 7 1.5 8 1.0

답변1

나는 이것이 당신에게 필요한 것이라고 생각합니다 :

sed '1,6d
7c%apj=D:\Store\Data\Diff All\SMC.apj\
%mem=800MB\
%nprocshared=4\
#p udf AMER hbvn/3-b(n) huggh=whea\
\
Use\

/^$/q' filename

한 줄씩 바꾸는 대신 처음 6줄은 삭제되고( 1,6d) 7번째 줄은 명령으로 삽입된 새 헤더로 교체됩니다 c. 마지막으로 다음 빈 줄에서 처리가 중지됩니다.

예상되는 출력이 제공되면 -i파일에서 직접 교체를 수행하는 옵션을 추가하십시오(GNU sed, BSD 버전에 맞게 조정).

관련 정보