H:와 T: 사이에 다음과 같은 데이터 레코드가 포함된 플랫 파일이 있습니다.
H:20050427 HEADER RECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
T:20050427 TRAILER RECORD
[blank space]
[Space]는 T(Enter 키) 다음에 생성된 새 줄입니다.
파일(있는 경우)에서 공백을 제거하고 H:와 T: 사이에 있는 데이터로 새 파일을 만들려면 어떻게 해야 합니까?
답변1
그냥 삭제하고 싶으시다면모두 [blank space]
(일반적으로 공백이 포함될 수 있음) 줄:
sed '/^[[:space:]]*$/ d' filename > newfile
아니면 간단히 (왜 귀찮게 awk
또는 sed
):
grep . filename > newfile
아니면 H:와 T: 줄 사이에 인쇄하세요.
sed -n '/^H:.*/, /^T:.*/ p' filename > newfile
답변2
당신은 두 가지 다른 질문을하고 있습니다. 정확히 무엇을하고 싶은지 잘 모르겠습니다.
빈 줄 삭제
awk
모든 줄을 문자와 일치시키고 다음 문자만 출력하는 데 사용됩니다 .
$ awk '/./ {print}' /path/to/your/file
H:와 T: 사이의 출력 라인만
awk
및 로 시작하는 줄을 일치시키고 H:
그 T:
사이의 줄만 출력하는 데 사용됩니다 (다른 줄에 이러한 접두사가 없다고 가정).
$ awk '/^H:/,/^T:/ {print}' /path/to/your/file