我有一行包含這個字串:
$DLOAD , 123 , Loadcase name=SUBCASE_1
我試圖只列印 SUBCASE_1。這是我的代碼,但出現語法錯誤。你能幫忙嗎?
awk -F, '{n=split($3,a,"="); a[n]} {printf(a[1]}' myfile
uj5u.com熱心網友回復:
第一種解決方案:如果您只想獲取最后一個欄位(其中包含=),那么使用您顯示的示例,請嘗試以下
awk -F',[[:space:]] |=' '{print $NF}' Input_file
第二種解決方案:或者,如果您想具體獲取第三個欄位的值,請=嘗試以下awk代碼。只需將逗號后跟空格作為欄位分隔符,并在主程式中將存盤值的第三個欄位拆分為 arr 陣列,然后列印 arr 陣列的第二個專案值。
awk -F',[[:space:]] ' '{split($3,arr,"=");print arr[2]}' Input_file
uj5u.com熱心網友回復:
可能最短的解決方案是:
awk -F= '{print $NF}' file
您只需將'='其用作欄位分隔符,然后列印最后一個欄位。
示例使用/輸出
在heredoc中使用您的樣本并參考sigil以防止擴展$DLOAD,您將擁有:
$ awk -F= '{print $NF}' << 'eof'
> $DLOAD , 123 , Loadcase name=SUBCASE_1
> eof
SUBCASE_1
(當然在這種情況下,是否擴展可能并不重要$DLOAD,但為了完整性,如果$DLOAD包含另一個'='......)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/440877.html
