Tôi có kịch bản trông như thế nàyLàm thế nào để làm cho AWK sử dụng biến được tạo ra trong Bash Script
#!/bin/bash
#exampel inputfile is "myfile.txt"
inputfile=$1
basen=`basename $inputfile .txt` # create basename
cat $inputfile |
awk '{print $basen "\t" $3} # this doesn't print "myfile" but the whole content of it.
Những gì tôi muốn làm trên là để in ra trong AWK biến gọi là 'Basen' tạo ra trước đó. Nhưng bằng cách nào đó nó không làm được những gì tôi hy vọng nó sẽ.
Vì vậy, ví dụ myfile.txt
chứa những dòng
foo bar bax
foo qux bar
Với kịch bản bash trên, chúng tôi hy vọng sẽ nhận
myfile bax
myfile bar
đúng cách để làm điều đó là gì?
sử dụng '$()' thay vì backticks. Và 'tìm' với vòng lặp' for' như thế sẽ phá vỡ các tệp có dấu cách. Trích dẫn biến '$ 1' của bạn là – ghostdog74