다음과 같은 파일이 있다고 가정합니다 file
.
$ cat file
Hello
Welcome to
Unix
and Linux
파일의 마지막 줄 끝에 추가하고 싶습니다 . 이렇게 echo " and Linux" >> file
하면 새 줄에 추가됩니다. 하지만 마지막 줄은Unix and Linux
따라서이 문제를 해결하기 위해 파일 끝에서 줄 바꿈 문자를 제거하고 싶습니다. 따라서 해당 줄에 텍스트를 추가하기 위해 파일 끝에있는 줄 바꿈 문자를 어떻게 제거합니까?
마지막 줄에 텍스트를 추가하기 만하면 sed를 사용하면 매우 쉽습니다. $
범위의 행 $
(마지막 행을 의미 함) 에서만 추가하려는 텍스트로 바꾸십시오 (행 끝에있는 패턴 일치 ).
sed '$ s/$/ and Linux/' <file >file.new &&
mv file.new file
Linux에서는 단축 할 수 있습니다.
sed -i '$ s/$/ and Linux/' file
파일의 마지막 바이트를 제거하려면 Linux (더 정확하게는 GNU coreutils)가 truncate
명령을 제공하므로이를 매우 쉽게 수행 할 수 있습니다.
truncate -s -1 file
이를 수행하는 POSIX 방법은 dd
. 먼저 파일 길이를 결정한 다음 1 바이트 이하로 자릅니다.
length=$(wc -c <file)
dd if=/dev/null of=file obs="$((length-1))" seek=1
이 두 가지 모두 무조건 파일의 마지막 바이트를 자릅니다. 먼저 개행인지 확인하는 것이 좋습니다.
length=$(wc -c <file)
if [ "$length" -ne 0 ] && [ -z "$(tail -c -1 <file)" ]; then
# The file ends with a newline or null
dd if=/dev/null of=file obs="$((length-1))" seek=1
fi
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다