나는 이것이 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"
이며 파일에 백업됩니다. (파일을 편집하고 첫 번째 줄을 직접 삭제하는 것과 같습니다.)