[unix] sed -i ‘1d’는 무엇을합니까?

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

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

무엇에 대해 '1d'?



답변

에서 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.


답변

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; 원본을 덮어 씁니다.


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플래그 와도 호환됩니다 .


답변

있음 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"로 백업하십시오. (파일 편집과 마찬가지로 첫 번째 줄을 직접 삭제하십시오.)


답변