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マニュアルから:

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

string を fieldsep で区切られた断片に分割し、断片を配列に格納し、区切り文字列を seps 配列に格納します。最初のピースは配列 [1] に格納され、2 番目のピースは配列 [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 に答える