이 텍스트 파일()에서 줄을 삭제하려고 합니다 foo.txt
.
cat
mouse
animals: 2
끝에서 두 줄을 제거하고 싶습니다.
animals: 2
그래서 나는 마침내 다음과 같은 결론에 이르렀습니다.
cat
mouse
그러나 을 사용하면 variable="$(sed '$d' foo.txt)"
하나만 지정했는데도 두 줄이 모두 삭제된 것처럼 보입니다 $d
. 이렇게 하면 내가 원하는 결과를 얻을 수 있지만 왜 이런 일이 발생하는지 궁금하지 않을 수 없습니다. 출력을 변수에 저장하지 않으려고 하면 다음과 같은 출력이 표시됩니다.
user$ sed '$d' foo.txt
cat
mouse
user$
이상한 점은 을 사용하면 $ sed '$d;$d' foo.txt
해당 animals: 2
줄만 제거되고 그 앞의 개행 문자는 제거되지 않는다는 것입니다.
누구든지 나를 위해 이 미스터리를 풀어줄 수 있나요? 감사해요.
참고로 이 예에서는 BSD sed가 사용되었습니다.