Tôi có một tập lệnh awk và tôi đã chuyển một tập tin CSV cho nó.
awk -f script.awk /home/abc/imp/asgd.csv
Tôi đang làm gì để có được FILENAME trong script.awk
. FILENAME cho tôi toàn bộ con đường. Khi tôi ở awk tôi không thể sử dụng basename FILENAME
.
print FILENAME;
/home/abc/imp/asgd.csv
Tôi đã thử với điều này trong script.awk
echo $FILENAME | awk -F"/" '{print $NF}'
nhưng tôi không thể thực hiện điều này trong vòng script.awk
. Làm thế nào tôi có thể nhận được asgd.csv
trong một chương trình awk?
n = split(FILENAME, a, "/"); basename=a[n];
. Đừng sử dụngsub
vì điều đó thực sự sẽ thay đổiFILENAME
biến số (đây không phải là vấn đề với hàm vì awk sử dụng lệnh gọi theo giá trị).