본문 바로가기
Terminology

[Linux] sed 명령어

by 이센 2025. 3. 17.

현재 사용 중인 Shell 종류를 확인하는 명령어


1. echo $SHELL (기본 로그인 Shell 확인)

echo $SHELL
  • 출력 예시 (기본 Shell이 bash인 경우):
    /bin/bash
    
  • 이 명령어는 로그인 Shell을 나타내지만, 현재 실행 중인 Shell과 다를 수도 있습니다.

2. ps -p $$ (현재 실행 중인 Shell 확인)

ps -p $$
  • 출력 예시 (bash에서 실행한 경우):
     PID TTY          TIME CMD
    1234 pts/0    00:00:00 bash
    
  • CMD 열에 표시된 값 (bash, zsh, sh 등)이 현재 실행 중인 Shell입니다.

3. echo $0 (현재 실행 중인 Shell 확인)

echo $0
  • 출력 예시:
    • bash → -bash
    • zsh → -zsh
    • sh → -sh
  • 단, 이 방법은 Shell이 exec를 통해 실행된 경우 다르게 표시될 수 있습니다.

4. /proc/self/exe 링크 확인

readlink /proc/$$/exe
  • 출력 예시:
    /usr/bin/bash
    
  • 현재 실행 중인 Shell의 전체 경로를 확인할 수 있습니다.

5. env | grep SHELL (환경 변수에서 확인)

env | grep SHELL
  • 출력 예시:
    SHELL=/bin/zsh
    
  • 이 방법도 로그인 Shell을 기준으로 출력됩니다.

결론

  • 현재 실행 중인 Shell 확인: ps -p $$ 또는 echo $0
  • 기본 로그인 Shell 확인: echo $SHELL

 

C Shell 환경에서 \r (Carriage Return)을 제거하는 방법

 

1. tr 사용 (가장 간단한 방법)

cat 파일명.txt | tr -d '\r' > 새파일.txt
  • \r을 제거하고 결과를 새파일.txt에 저장합니다.

2. sed 사용

sed 's/\r//g' 파일명.txt > 새파일.txt
  • sed는 csh에서도 사용 가능하지만, -i 옵션(파일 직접 수정)은 다소 불안정할 수 있습니다.
  • 안전하게 새 파일로 저장한 후 원본을 덮어쓰는 방법이 좋습니다:
    sed 's/\r//g' 파일명.txt > temp.txt && mv temp.txt 파일명.txt
    

3. awk 사용

awk '{gsub("\r",""); print}' 파일명.txt > 새파일.txt

4. perl 사용

perl -pi -e 's/\r//g' 파일명.txt

5. dos2unix 사용 (설치 필요)

dos2unix 파일명.txt
  • csh에서도 실행 가능하지만, dos2unix 패키지가 설치되어 있어야 합니다.

추가: csh에서 변수 활용하는 경우

  • csh에서는 foreach를 이용해서 여러 파일을 변환할 수도 있습니다.
foreach f (*.txt)
    tr -d '\r' < $f > temp.txt && mv temp.txt $f
end
  • 위 코드는 현재 디렉토리의 모든 .txt 파일에서 \r을 제거합니다.

결론: csh에서도 tr, sed, awk, perl 등을 그대로 사용할 수 있으며, dos2unix도 실행 가능합니다. 다만, foreach 등을 활용할 경우 csh 문법에 맞게 조정하면 됩니다.

'Terminology' 카테고리의 다른 글

f-number, 입사각 범위  (0) 2024.11.08
그래프에서 값 얻기  (0) 2023.10.21
Refractive index, extinction coefficient, relative permittivity  (0) 2023.08.18
Chief ray angle (CRA)  (0) 2023.07.24
Dual conversion gain  (0) 2023.07.21