Cách trích xuất tên tệp và phần mở rộng trong Bash

Cach Trich Xuat Ten Tep Va Phan Mo Rong Trong Bash



Bash là một shell dòng lệnh mạnh mẽ thường được sử dụng trong các hệ điều hành Linux và Unix. Một nhiệm vụ phổ biến khi làm việc với các tệp trong Bash là trích xuất tên tệp và phần mở rộng từ đường dẫn tệp. Bài viết này sẽ thảo luận cách trích xuất tên tệp và phần mở rộng trong Bash và cung cấp các ví dụ về cách sử dụng các giá trị này trong tập lệnh của bạn.

Trích xuất tên tệp và phần mở rộng trong Bash

Có một số cách để trích xuất tên tệp và phần mở rộng trong Bash, đây là ba phương pháp phổ biến:







1: Sử dụng lệnh Basename

Các tên cơ sở lệnh trả về tên tệp từ đường dẫn tệp và trích xuất tên tệp và phần mở rộng. Bạn có thể dùng tên cơ sở lệnh với –hậu tố tùy chọn, loại bỏ hậu tố được chỉ định khỏi tên tệp như trong mã được cung cấp bên dưới:



#!/bin/bash
# Đường dẫn tệp ví dụ
đường dẫn tập tin = '/path/to/file.txt'

# Trích xuất tên tệp
tên tập tin =$ ( tên cơ sở $file_path )

# Trích xuất phần mở rộng
sự mở rộng = ' ${tên tệp##*.} '

tiếng vang 'Tên tệp: tên tệp $ '
tiếng vang 'Sự mở rộng: phần mở rộng $ '







2: Sử dụng Mở rộng Tham số

Các mở rộng tham số cú pháp là một tính năng mạnh mẽ của Bash cho phép bạn thao tác với các chuỗi. Để trích xuất tên tệp và phần mở rộng bằng cách sử dụng mở rộng tham số, bạn có thể sử dụng ${tham số## từ} cú pháp loại bỏ kết quả khớp dài nhất của mẫu đã chỉ định khỏi đầu tham số như trong mã bên dưới:

#!/bin/bash
# Đường dẫn tệp ví dụ
đường dẫn tập tin = '/path/to/file.txt'
# Trích xuất tên tệp
tên tập tin = ' ${file_path##*/} '
# Trích xuất phần mở rộng
sự mở rộng = ' ${tên tệp##*.} '
tiếng vang 'Tên tệp: tên tệp $ '
tiếng vang 'Sự mở rộng: phần mở rộng $ '



3: Sử dụng biến IFS (Bộ tách trường nội bộ)

Các biến IFS được Bash sử dụng để chia chuỗi thành các trường bằng cách đặt biến IFS đến dấu phân cách đường dẫn (“/”). Bạn có thể trích xuất tên tệp và phần mở rộng từ đường dẫn tệp thông qua biến này bằng mã được cung cấp bên dưới:

#!/bin/bash
# Đường dẫn tệp ví dụ
đường dẫn tập tin = '/path/to/file.txt'
# Đặt IFS thành '/'
NẾU = '/' đọc -r -Một các bộ phận <<< ' $file_path '

# Trích xuất tên tệp
tên tập tin = ' ${phần[-1]} '
# Trích xuất phần mở rộng
sự mở rộng = ' ${tên tệp##*.} '
tiếng vang 'Tên tệp: tên tệp $ '
tiếng vang 'Sự mở rộng: phần mở rộng $ '

Phần kết luận

Trích xuất tên tệp và phần mở rộng từ đường dẫn tệp là một tác vụ phổ biến khi làm việc với các tệp trong Bash. Bài viết này đã thảo luận về ba phương pháp phổ biến để trích xuất tên tệp và phần mở rộng trong Bash. Bằng cách sử dụng tên cơ sở mệnh lệnh, các mở rộng tham số cú pháp, hoặc biến IFS , bạn có thể nhanh chóng và dễ dàng trích xuất tên tệp và các giá trị phần mở rộng từ đường dẫn tệp.