見つけたコードサンプルに基づいて、次のことを試しています。
echo "file.txt" | awk '{split($0,a,"."); print a[0]}'
しかし、それは空白の出力を返しています。
ヒントはありますか?
コードは正しいですが、配列は次の関数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] に格納され、以下同様です。
試す
echo "file.txt" | awk '{split($0,a,"."); print a[1]}'
awk 配列のインデックスは1 ベースです。