出於某種原因,我試圖找出我得到「-bash」打印出來,這個腳本:awk函數打印..... -bash?
cat sample | awk -v al=$0 -F"|" '{n = split(al, a, "|")} {print a[1]}'
的「樣本」文件中包含PSV「管道分隔值」,像| b | C | d | E | F | d。
我的意圖是使用一個數組。
上述腳本的結果是長度爲1的數組,並且只包含的項是「-bash」,即shell的名稱。
默認$ 0指向當前使用的程序,但據我所知,在awk腳本中,$ 0參數'應該'指向正在讀取的整個行。
因爲我想知道問題解決的地方是「我是新手bash/awk」 您能指出我下列哪個步驟失敗?
1-將樣本文件「連接」並將其作爲awk腳本的輸入傳遞
3定義一個名爲'al'的變量,其值爲'sample'中包含的每行'
3定義管道「|」作爲字段分隔符
4 - 定義一個動作,將'al'的值用管道分割成一個名爲'a'的數組作爲分隔符
5定義另一個動作,在這種情況下只是簡單地打印第一個項目array
有什麼建議嗎?謝謝!
請不要用'cat',這是不必要的 - 'awk'一個文件名作爲參數。 – cdarke