sed
특정 위치의 줄을 빠르게 삭제 하는 데 사용 합니다.
sed '1d'
sed '5d'
그러나 파일의 마지막 줄을 삭제하고 줄 수를 모르는 경우 어떻게해야합니까 (나는 wc
몇 가지 다른 트릭 을 사용하여 얻을 수 있음을 알고 있습니다 ).
현재와 해결 방법을 사용 head
하고 tail
결합으로 wc
그렇게 할 수 있습니다. 여기에 빠른 비틀기?
head
하고 tail
알 수 있습니까?
sed
특정 위치의 줄을 빠르게 삭제 하는 데 사용 합니다.
sed '1d'
sed '5d'
그러나 파일의 마지막 줄을 삭제하고 줄 수를 모르는 경우 어떻게해야합니까 (나는 wc
몇 가지 다른 트릭 을 사용하여 얻을 수 있음을 알고 있습니다 ).
현재와 해결 방법을 사용 head
하고 tail
결합으로 wc
그렇게 할 수 있습니다. 여기에 빠른 비틀기?
head
하고 tail
알 수 있습니까?
답변:
sed $
에서 마지막 줄이므로 마지막 줄을 삭제하십시오.
sed '$d' <file>
sed -i '$d' <file>
파일을 제자리에서 편집하는 데 사용 합니다.
마지막 줄에 $
sed '$d' file
sed '$d' file; sed '$d' file
sed '$d' file
실제로 파일을 수정하지는 않습니다. 마지막 줄을 뺀 파일의 내용을 인쇄합니다. 따라서 매번 마지막 줄을 뺀 sed '$d' file; sed '$d' file
파일의 내용을 두 번 인쇄합니다 . 마지막 두 줄 삭제 sed '$d' file
는에 해당 sed '$d' file | sed '$d'
합니다.
sed -n '1{h;n;}; $q; x; p;'
. 나는 우리가 할 수 없다고 삐걱 거리고 있었다 sed '$-1,$d'
.
cat file.txt | head -n -1 > new_file.txt
조심이의 마지막 줄에 따라 같다 file.txt
(이로 끝나는 경우 EOF
, 또는 \n
다음과 EOF
, 행 수)가 new_file.txt
동일 (로 할 수있다 file.txt
(이 더있을 때 일어나지이 명령 후를) \n
) - 어떤 경우에, 마지막 줄의 내용이 삭제됩니다.
또한 두 번째 (중간) 파일을 사용해야합니다. 동일한 파일로 분류하여 리디렉션하면 파일이 지워집니다.
head -n -1 file.txt > new_file.txt
. 음수 카운트 head -n
는의 일부 구현에서만 사용할 수 있습니다 head
. 예를 들어, FreeBSD 또는 BusyBox 버전에서는 작동하지 않습니다 head
.
head -n -1 file.txt > new_file.txt
합니다. 내 두 주석 (같은 줄 수 및 동일한 파일에서 지우기)과 동일한 방식으로 작동합니다. 부정적인 주장에 관해서는, 그러한 차이는 유닉스 사이에서 때때로 발생하며, 당신이 완전히 같은 명령을 기대하기 때문에 종종 좌절하고 있습니다 (왜 당신은 같은 이름과 목적을 가지고 있지 않습니까!). 포인트. (데비안을 사용합니다.)
head --lines=-1
. SLES11SP2 시스템 맨 페이지 (coreutils-8.12-6.23.1)에서이 가능성을 처음 발견했습니다.
tail
및 head
의 일부 coreutils
(RPM - 기반 시스템에 대한 적어도) -rpm.
coreutils의 변경 로그에 따르면이 구문은 coreutils 버전 5.0.1부터 지원됩니다
나쁜 소식 : RH5 매뉴얼 페이지에 따르면이 옵션은 설명되어 있지 않습니다
좋은 소식 : RH5와 함께 작동합니다 (최소한 현재 RH5 버전에서는 작동합니다).
rpm -q coreutils
(CentOS 5.8에서) : coreutils-5.97-34.el5_8.1
RH5.5인지 확실하지 않습니다. 이미이를 지원하는 coreutils 버전이 있습니다. 그러나 5.5는 어쨌든 EoLed를 사용했습니다.
head
과tail
...