0
具有包括文件的一部分:的Mac OS X在awk - 打印輸入線和輸入線一起
field1/field2/field3
你怎麼用awk產生以下輸出?
field2 field1/field2/field3
在Linux上:awk -F '/' '{print $2 " " $_}'
正在完成這項工作。
但Mac OS X上的等效項:awk -F '/' '{print $2 " " $0}'
僅打印輸入行$0
。
'$ _'只「做工作」,因爲你可以創建一個名爲'變量_'所以當AWK看到'$ _'它認爲你正在試圖訪問該字段w ^軟管號存儲在名爲'_'的變量中,並且由於該變量未初始化,所以其值爲空或零,因此'$ _'被視爲'$ 0'並打印整個記錄。不要使用'_'作爲變量名稱,除非您試圖混淆您的代碼。你發佈的第二條命令不可能只打印輸入行,它至少會在前面加上一個空白字符,但將命令改爲'print NF',「<"$2">」,「[」$ 0「]」'進行調試。 –
謝謝Ed,調試方案讓我可以繼續前進。當我從頭開始創建示例文件時,它正在工作,但在我的真實文件中不是。我基本上得到「] <> [field1/field2 ...」...我猜想文件格式有問題。仍然試圖弄清楚究竟是什麼...... – jqdoumen
不要嘗試將格式化文本放入註釋中,因爲您無法 - 編輯您的問題以包含輸入和輸出以及您運行的腳本。堅持下去 - 我敢打賭你的輸入文件是在Windows上創建的,因此包含了虛假控制 - 這些混亂了輸出外觀的Ms。使用'cat -v'來查看它們,'dos2unix'或類似的來移除它們。 –