sed
특정 위치의 행을 빠르게 삭제하는 데 사용합니다.
sed '1d'
sed '5d'
하지만 파일의 마지막 줄을 삭제하고 싶은데 줄 수를 모른다면 어떻게 해야 할까요( wc
다른 방법을 사용하여 그렇게 할 수 있다는 것을 알고 있습니다).
head
현재 이를 위해 tail
해결 방법이 사용되고 결합되어 있습니다 . wc
여기에 빠른 반전이 있습니까?
답변1
sed가 $
마지막 줄이므로 마지막 줄을 삭제하세요.
sed '$d' <file>
파일 하단에서 여러 줄을 제거하는 방법을 포함하도록 업데이트되었습니다.
tac <file> | tail -n +3 | tac > <new_file>
tac
파일을 뒤로 읽기(cat
뒤로)tail -n +3
라인 n부터 시작하여 입력 읽기tac
입력을 읽고 순서를 원래 순서로 되돌립니다.
답변2
$ 마지막 줄:
sed '$d' file
답변3
cat file.txt | head -n -1 > new_file.txt
file.txt
마지막 줄 ( EOF
, 또는 로 \n
끝나는 경우 EOF
)에 따라 이 명령 뒤의 줄 수는 ( 없는 경우 발생 ) new_file.txt
과 동일할 수 있습니다 . 어떤 경우든 마지막 줄의 내용은 다음과 같습니다. 삭제됩니다.file.txt
\n
또한 두 번째(중간) 파일을 사용해야 한다는 점에 유의하세요. 동일한 파일을 캣하고 리디렉션하면 삭제됩니다.
답변4
리눅스
$는 마지막 줄이고 d는 삭제를 의미합니다.
sed '$d' ~/path/to/your/file/name
애플 시스템
sed -i와 동일
sed -i '' -e '$ d' ~/path/to/your/file/name