> 운영 및 유지보수 > 리눅스 운영 및 유지 관리 > Linux에서 파일의 특정 줄을 삭제하는 방법

Linux에서 파일의 특정 줄을 삭제하는 방법

青灯夜游
풀어 주다: 2022-07-19 18:53:31
원래의
19652명이 탐색했습니다.

Linux에서는 sed 명령을 사용하여 지정된 파일의 특정 줄을 삭제할 수 있습니다. "sed 'M,Nd' 파일 이름" 문을 실행하면 M부터 N까지 연속된 줄의 내용을 삭제할 수 있습니다. "sed 'N1d를 실행합니다. ;N2d; N3d;$d' 파일 이름" 문은 연속되지 않은 줄 N1, N2, N3의 내용을 삭제할 수 있습니다. 특정 문자가 포함된 줄을 삭제하려면 "sed '/특정 문자/d' 파일 이름" 문을 실행하세요. " sed '/ ^특정 문자/d' 파일 이름" 문은 특정 문자로 시작하는 줄을 삭제할 수 있습니다.

Linux에서 파일의 특정 줄을 삭제하는 방법

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

Linux에서는 sed 명령을 사용하여 지정된 파일의 특정 줄을 삭제할 수 있습니다.

sed는 Stream Editor의 약자로 Linux에서 기본적인 텍스트 변환에 사용되며 파일 작업에 중요한 명령이므로 텍스트를 삭제할 수도 있습니다.

다음은 대부분의 사용 시나리오를 다루는 sed 명령의 몇 가지 사용 예입니다. sed 명령을 얕은 것부터 깊은 것까지 학습하여 특정 파일 줄을 쉽고 효율적으로 삭제할 수 있습니다.

먼저 데모 파일 sed-demo.txt를 준비하고 파일 내용을 살펴봅니다

cat sed-demo.txt
로그인 후 복사

Linux에서 파일의 특정 줄을 삭제하는 방법

그런 다음 sed 명령을 사용하여 실험할 수 있습니다.

1. 특정 줄 삭제

먼저 첫 번째 줄과 마지막 줄을 삭제하는 등 실제로는 N 번째 줄을 삭제하는 것부터 시작합니다.

N번째 줄을 삭제하는 명령 형식:

sed 'Nd' file
로그인 후 복사

첫 번째 줄을 삭제해 보겠습니다.

sed '1d' sed-demo.txt
로그인 후 복사

Linux에서 파일의 특정 줄을 삭제하는 방법

아주 간단하죠? 여기서는 별다른 설명이 없을 것입니다. 어느 줄의 내용을 삭제하려면 명령에서 1만 바꾸면 됩니다.

그렇다면 마지막 줄을 나타내는 데 사용된 숫자는 무엇입니까? 여기에 작은 팁이 있습니다. 달러 기호 $를 사용하여 끝을 나타낼 수 있으므로 마지막 줄을 삭제하는 명령은 다음과 같이 작성할 수 있습니다:

sed '$d' sed-demo.txt
로그인 후 복사

Linux에서 파일의 특정 줄을 삭제하는 방법

2 특정 줄 삭제

.

sed 명령은 연속 또는 불연속 행 내용을 삭제할 수 있습니다.

연속 행 삭제(예: 5~7행 삭제):

sed '5,7d' sed-demo.txt
로그인 후 복사

Linux에서 파일의 특정 줄을 삭제하는 방법

1번째, 5번째, 9번째 및 마지막 행 삭제와 같은 비연속 행 삭제:

sed '1d;5d;9d;$d' sed-demo.txt
로그인 후 복사

Linux에서 파일의 특정 줄을 삭제하는 방법

또한 3~6행을 제외한 다른 행 삭제와 같은 논리적 NOT!과 함께 사용할 수도 있습니다.

sed '3,6!d' sed-demo.txt
로그인 후 복사

Linux에서 파일의 특정 줄을 삭제하는 방법

3. 빈 행 삭제

sed는 파일에서 빈 행 삭제도 지원합니다. 명령은 다음과 같습니다. :

sed '/^$/d' sed-demo.txt
로그인 후 복사

Linux에서 파일의 특정 줄을 삭제하는 방법

팁: 여기서 두 개의 슬래시 안에 있는 표현식은 텍스트 일치의 역할을 합니다. 정규 표현식의 사용법을 참고할 수 있습니다. 다음은 모든 사람의 학습을 심화하기 위해 일반적으로 사용되는 몇 가지 방법입니다.

4. 특정 문자가 포함된 줄 삭제

샘플 파일에서 System이라는 단어가 포함된 줄을 삭제하고 싶다면 /System/을 사용할 수 있습니다. 즉, System이라는 문자열이 나타나면 Match를 진행합니다. 구체적인 명령은 다음과 같습니다:

sed '/System/d' sed-demo.txt
로그인 후 복사

Linux에서 파일의 특정 줄을 삭제하는 방법

뿐만 아니라 논리적 조건을 추가할 수도 있습니다. 예를 들어 다음 명령은 다음과 같습니다.

sed '/System\|Linux/d' sed-demo.txt
로그인 후 복사

Linux에서 파일의 특정 줄을 삭제하는 방법

기호 |는 논리적 OR을 나타내며, 위 명령의 의미는 다음과 같습니다. 시스템 또는 Linux가 포함된 줄은 삭제해야 합니다.

5. 특정 문자로 시작하는 줄 삭제

먼저 더 나은 설명을 위해 또 다른 샘플 파일 sed-demo-1.txt를 만듭니다. 내용은 다음과 같습니다.

cat sed-demo-1.txt
로그인 후 복사

Linux에서 파일의 특정 줄을 삭제하는 방법

이미 위에서 언급했습니다. 앞서 언급한 $ 기호는 끝으로 이해될 수 있는데, 시작을 나타낼 수 있는 문자가 있나요? 대답은 '예'입니다. 여기서는 ^ 기호를 사용하여 시작을 나타낼 수 있습니다.

따라서 특정 문자로 시작하는 줄을 삭제하려면, 예를 들어 R로 시작하는 줄을 삭제하려면 다음 명령을 사용할 수 있습니다.

sed '/^R/d' sed-demo-1.txt
로그인 후 복사

1Linux에서 파일의 특정 줄을 삭제하는 방법

那么问题来了,比如我想删除以 R 或者 F 开头的行,那我是不是要执行两次命令呢?如果是有更多岂不是要执行多次命令?这里它有一个简单的写法,你只要把这些字符写在一对中括号 [] 里就可以了:

sed '/^[RF]/d' sed-demo-1.txt
로그인 후 복사

1Linux에서 파일의 특정 줄을 삭제하는 방법

上面命令的作用是 删除以 R 或者 F 开头的行。

6. 删除特定字符结尾的行

同上面一个道理,删除以某一个字符结尾的行,比方说删除以 m 结尾的行,我们可以这样做:

sed '/m$/d' sed-demo.txt
로그인 후 복사

1Linux에서 파일의 특정 줄을 삭제하는 방법

删除以 x 或 m 结尾的行可以这样写:

sed '/[xm]$/d' sed-demo.txt
로그인 후 복사

1Linux에서 파일의 특정 줄을 삭제하는 방법

7. 删除以大写字母开头的行

这里问题又来了,我想要删除所有以大写字母开头的行呢?按照上面的做法是不是要将 A 到 Z 这 26 个字母都写进 [ ] 里呢?其实我们大可不必这样做,在 A 和 Z 中间加个 - 就可以了:

sed '/^[A-Z]/d' sed-demo-1.txt
로그인 후 복사

1Linux에서 파일의 특정 줄을 삭제하는 방법

机智的你看到这里肯定会想到其他类似的用法的了,不妨看看下面是否有你想到的命令吧。

8. 删除包含字母字符的行

sed '/[A-Za-z]/d' sed-demo-1.txt
로그인 후 복사

1Linux에서 파일의 특정 줄을 삭제하는 방법

9. 删除包含数字的行

sed '/[0-9]/d' sed-demo-1.txt
로그인 후 복사

1Linux에서 파일의 특정 줄을 삭제하는 방법

另外,通过这个例子,我们可以加上 ^ 和 $ 更好地看到他们之间的区别:

sed '/^[0-9]/d' sed-demo-1.txt
로그인 후 복사

1Linux에서 파일의 특정 줄을 삭제하는 방법

sed '/[0-9]$/d' sed-demo-1.txt
로그인 후 복사

1Linux에서 파일의 특정 줄을 삭제하는 방법

相关推荐:《Linux视频教程

위 내용은 Linux에서 파일의 특정 줄을 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿