我正在根据我找到的代码示例尝试以下内容:
echo "file.txt" | awk '{split($0,a,"."); print a[0]}'
但它返回一个空白输出。
任何提示?
答案 0 :(得分:6)
您的代码是正确的,但是数组a
从split
函数的1开始:
$ echo "file.txt" | awk '{split($0,a,"."); print a[0]}'
$ echo "file.txt" | awk '{split($0,a,"."); print a[1]}'
file
$ echo "file.txt" | awk '{split($0,a,"."); print a[2]}'
txt
来自gawk
手册:
split(string,array [,fieldsep [,seps]])
将字符串分成由fieldsep分隔的片段并存储片段 in array和seps数组中的分隔符字符串。第一件 存储在数组[1]中,第二部分存储在数组[2]中,依此类推。
答案 1 :(得分:5)
试
echo "file.txt" | awk '{split($0,a,"."); print a[1]}'
awk数组索引从1开始。