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

Kle*_* S. 0 bash shell awk split

我根据我发现的代码示例尝试以下内容:

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

但它返回一个空白输出.

任何提示?

Chr*_*our 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
Run Code Online (Sandbox Code Playgroud)

gawk手册:

split(string,array [,fieldsep [,seps]])

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


Ken*_*ent 5

尝试

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

awk数组索引是从1开始的.