따라서:
1
2
3
4
5
6
결과는 다음과 같아야 합니다.
1
2
3
4
5
6
답변1
이렇게 하면 빈 줄만 제거됩니다. 작업 중인 모든 작업이 출력되는 경우 "파일"을 제거할 수 있습니다.
sed '/^[[:space:]]*$/d' file
공백으로 시작하고, 포함하고, 끝나는 모든 줄에서 작동합니다.
파일을 표준 출력으로 보내는 대신 직접 편집하려면 다음을 수행하십시오.
sed -i '/^[[:space:]]*$/d' file
산출
1
2
3
4
5
6
답변2
cut
명령은 이 요구 사항에 적합한 도구는 아니지만 원하는 결과를 얻기 위한 명령을 작성할 수 있습니다(또는 사용해야 할 도구):
<infile cut -d$'\n' -f1$(printf '%s' ,{3..18..2})
{min..max..step}
예bash 중괄호 확장출력 생성 (클립 옵션 ,3,5,7,9,11,...
에 홀수 필드 번호 생성 )-f
-f1,3,5,7,11,...
최고입력 파일에 알 수 없는 행 수가 있는 경우 매우 큰 수를 사용하십시오.
이는 홀수 행만 선택하므로 빈 행이라고 생각되는 행은 건너뛰지 않습니다.
답변3
cut
주로 특정 도구를 추출하기 위해목록데이터에서 (반대와 반대 paste
) 따라서 텍스트 줄을 제거/추출하는 데 적합한 도구가 아닐 수도 있습니다.
GNU를 sed
사용하여 2번째 줄에서 시작하는 두 번째 줄을 삭제할 수 있습니다.
$ sed '2~2d' file
1
2
3
4
5
6
...또는 라인 1부터 시작하여 다른 모든 라인을 인쇄합니다(다른 라인은 무시됨).
$ sed -n '1~2p' file
1
2
3
4
5
6
주소 x~y
범위는 line 을 참조 x
하고 y
그 뒤의 각 라인을 참조합니다(이것은 sed
표준에 대한 GNU 확장 입니다 sed
).
답변4
awk NF
당신이 필요한 전부입니다. NF는 공백으로 구분된 필드 수입니다. 0은 잘못된 부울이므로 이 줄은 인쇄되지 않습니다.