0

我正在根据我找到的代码示例尝试以下操作:

echo "file.txt" | awk '{split($0,a,"."); print a[0]}'

但它返回一个空白输出。

有什么提示吗?

4

2 回答 2

6

您的代码是正确的,但是数组a从 1 开始,具有以下split功能:

$ 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手册:

拆分(字符串,数组 [,fieldep [,seps ] ])

将字符串分成由fieldsep分隔的片段,并将片段存储在数组中,将分隔符字符串存储在seps数组中。第一部分存储在数组 [1] 中,第二部分存储在数组 [2] 中,依此类推。

于 2013-03-19T14:59:17.527 回答
5

尝试

echo "file.txt" | awk '{split($0,a,"."); print a[1]}'  

awk 数组索引是从1 开始的

于 2013-03-19T14:59:34.570 回答