使用awk返回空白拆分字符串

时间:2013-03-19 14:57:43

标签: bash shell awk split

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

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

但它返回一个空白输出。

任何提示?

2 个答案:

答案 0 :(得分:6)

您的代码是正确的,但是数组asplit函数的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开始