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