일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 웹개발
- 데이터과학
- Yes
- 컴퓨터공학
- 머신러닝
- 프로그래밍
- 컴퓨터비전
- I'm Sorry
- 버전관리
- 소프트웨어
- 2
- 네트워크
- 컴퓨터과학
- 파이썬
- 데이터구조
- 자바스크립트
- 인공지능
- 빅데이터
- 클라우드컴퓨팅
- 코딩
- 자료구조
- 프로그래밍언어
- 딥러닝
- 데이터베이스
- 데이터분석
- 소프트웨어공학
- 사이버보안
- 알고리즘
- 보안
- 네트워크보안
- Today
- Total
스택큐힙리스트
Bash에서 파일 이름과 확장자 추출하기 본문
저는 파일 이름(확장자 제외)과 확장자를 각각 얻고 싶습니다.
지금까지 찾은 최고의 해결책은:
NAME=`echo $FILE | cut -d'.' -f1`
EXTENSION=`echo $FILE | cut -d'.' -f2`
이것은 잘못된 것입니다. 파일 이름에 여러 . 문자가 포함되어 있으면 작동하지 않습니다. 예를 들어, a.b.js 가 있다면, a 및 b.js 대신에는 a.b 및 js 를 고려할 것입니다.
Python으로 쉽게 할 수 있습니다.
file, ext = os.path.splitext(path)
하지만 가능하다면 이것 때문에 파이썬 인터프리터를 실행하고 싶지 않습니다.
더 좋은 아이디어가 있나요?
답변 1
먼저 경로를 제외한 파일 이름을 가져옵니다.
filename=$(basename -- $fullfile)
extension=${filename##*.}
filename=${filename%.*}
대신 파일 확장자가 예측할 수 없을 때에도 작동하는 '/' 경로의 마지막 부분에 초점을 맞출 수 있습니다.
filename=${fullfile##*/}
문서를 확인해보시기를 권장합니다.
웹사이트의 3.5.3 Shell Parameter Expansion 섹션에서
파라미터 확장이라는 섹션에서 bash 매뉴얼 페이지를 참조하십시오.
답변 2
배시(Bash)에서 파일 이름과 확장자 추출하기
리눅스 운영 체제를 사용하는 개발자라면 배시(Bash) 쉘 스크립트를 사용해보거나 이미 사용해봤을 것입니다. 이번에는 배시 쉘 스크립트에서 파일 이름과 확장자를 추출하는 방법에 대해서 살펴보겠습니다.
먼저, 파일 이름과 확장자를 각각 추출하는 방법부터 살펴보겠습니다. 파일 이름과 확장자는 파일 경로에서 마지막 . 문자 이후의 문자열로 구분됩니다. 따라서, 파일 경로에서 파일 이름과 확장자를 추출하기 위해서는 다음과 같은 스크립트를 사용할 수 있습니다.
```
# 파일 경로
path=/home/user/documents/sample.pdf
# 파일 이름과 확장자 추출
filename=$(basename —- $path)
extension=${filename##*.}
filename=${filename%.*}
echo 파일 경로: $path
echo 파일 이름: $filename
echo 파일 확장자: $extension
```
위 스크립트에서는 basename 명령어를 사용해 파일 경로에서 파일 이름을 추출한 후, ${filename##*.}과 ${filename%.*}을 사용해 확장자와 파일 이름을 추출합니다. ${filename##*.}은 파일 경로에서 가장 마지막에 있는 . 문자 이후의 문자열을 가져오고, ${filename%.*}은 파일 경로에서 가장 마지막 . 문자 이전의 문자열을 가져옵니다.
다음으로, 여러 개의 파일에서 파일 이름과 확장자를 추출하는 방법을 살펴보겠습니다. 여러 파일에서 파일 이름과 확장자를 추출할 때는 for 반복문을 사용하면 됩니다. 예를 들어, 다음과 같은 스크립트를 사용하면 현재 디렉토리 내의 모든 파일에서 파일 이름과 확장자를 추출할 수 있습니다.
```
# 현재 디렉토리 내의 모든 파일 이름과 확장자 추출
for file in *
do
if [ -f $file ]
then
filename=$(basename —- $file)
extension=${filename##*.}
filename=${filename%.*}
echo 파일 이름: $filename
echo 파일 확장자: $extension
fi
done
```
위 스크립트는 현재 디렉토리 내의 모든 파일을 가져온 후, 파일 이름과 확장자를 하나씩 추출합니다. -f 옵션은 파일이 실제로 존재하는 파일인지 확인하는 것으로, 이를 사용해 파일만 추출할 수 있습니다.
배시(Bash)에서 파일 이름과 확장자를 추출하는 방법을 살펴보았습니다. 이를 사용하면 파일 경로에서 파일 이름과 확장자를 쉽게 추출할 수 있습니다. 또한, 여러 개의 파일에서 파일 이름과 확장자를 추출할 때는 for 반복문을 사용하면 됩니다. 배시(Bash) 쉘 스크립트에서 파일 이름과 확장자를 추출해 파일 처리를 보다 쉽게 할 수 있습니다.