Cut 명령을 사용하여 줄 간격을 삭제하는 방법

Cut 명령을 사용하여 줄 간격을 삭제하는 방법

따라서:

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은 잘못된 부울이므로 이 줄은 인쇄되지 않습니다.

관련 정보