sed -i '1d'는 무엇을 합니까?

sed -i '1d'는 무엇을 합니까?

나는 이것이 sed텍스트 파일을 조작하는 명령이라는 것을 알고 있습니다.

내 인터넷 검색에 따르면 이는 -i파일 자체에 대한 작업을 수행하는 것을 의미하는 것 같습니다. 이것이 맞습니까?

무엇에 대해 '1d'?

답변1

존재하다 sed:

  • -i옵션은 입력 파일을 그 자리에서 편집합니다

  • '1d'입력 파일의 첫 번째 줄을 삭제합니다

예:

% cat file.txt 
foo
bar

% sed -i '1d' file.txt 

% cat file.txt        
bar

대부분의 경우 -i이 옵션을 사용할 때는 예기치 않은 변경 사항이 있을 경우 원본 파일을 백업할 수 있도록 백업을 만드는 것이 가장 좋습니다.

예를 들어, 다음과 같은 경우:

sed -i.orig '1d' file.txt 

원본 파일은 그대로 유지 file.txt.orig되고 수정된 파일은 file.txt.

답변2

1.a)

sed '1d' file.txt

인쇄된 내용 file.txt;첫 번째 줄은 제외됩니다.표준 출력으로.


2.a)

sed -i    '1d' file.txt # GNU, NetBSD, OpenBSD
sed -i '' '1d' file.txt # FreeBSD, macOS

인쇄된 내용 file.txt;첫 번째 줄은 제외됩니다.돌아가서 file.txt원본을 덮어쓰세요.


2.b)

sed -i.back '1d' file.txt

file.txt.back변경하기 전에 원본 파일의 백업을 만드십시오(예: FreeBSD를 제외하고 sed접미사(여기 )는 옵션(동일 인수에서 및 사이에 공백 없이 ) .back에 추가되어야 합니다 .-i-i.back


3.a)

sed '2d' file.txt

인쇄된 내용 file.txt;두 번째 줄은 제외됩니다.표준 출력으로.
(숫자를 지정하면 해당 행이 삭제됩니다).

로고와도 호환됩니다 -i.


3.b)

sed '1!d' file.txt

내용 인쇄 file.txt;모두 제외하지만첫번째 줄;표준 출력으로.
(다시 말해서;오직첫 번째 줄이 인쇄됩니다.)

로고와도 호환됩니다 -i.


3.c)

sed '$d' file.txt

내용 인쇄 file.txt;마지막 줄을 제외하세요.표준 출력으로.

로고와도 호환됩니다 -i.

답변3

거기 에 sed -h:

  -i[SUFFIX], --in-place[=SUFFIX]
             edit files in place (makes backup if SUFFIX supplied)

그리고 "파일 자체에 대한 작업을 수행하십시오." 이는 전적으로 사실입니다.

그리고 man말했습니다: 'Sed는 스트림 편집자입니다. 스트림 편집기는 입력 스트림(파일 또는 파이프의 입력)에서 기본 텍스트 변환을 수행하는 데 사용됩니다.

귀하의 질문으로,

sed -i '1d' file_name

방법:삭제파일의 첫 번째 줄 위치 "file_name"이며 파일에 백업됩니다. (파일을 편집하고 첫 번째 줄을 직접 삭제하는 것과 같습니다.)

관련 정보