修剪來自 awk 欄位的值

修剪來自 awk 欄位的值

我正在解析一個文件,並使用 awk 來獲取第一個和第三個字段。

這一切都很好;但在第一個字段中,我想刪除該字串的最後 4 個字元;到目前為止,我還沒有找到在 awk 中執行此操作的方法,唯一的方法是進行多次調用,因此我將 awk 輸出保存在 2 個變數中,然後修剪第一個字串。

有更有效的方法嗎?這就是文件的樣子

abcdefghi.234,12345,xyz
riosadsef.543,19432,eis
baifafsag.342,01934,eod

這就是我在循環中運行的內容

echo $output | awk -F, "{print $1, $3}"

這將正確列印該行,但隨後我想修剪 $1,刪除最後 4 個字符

答案1

一種方法是使用 awk 的substr函數。例如,從此輸入開始:

$ cat input
abcdefghi.234,12345,xyz
riosadsef.543,19432,eis
baifafsag.342,01934,eod

我們可以列印第一列和第三列,並省略第一列的最後四個字元:

$ awk -F, '{print substr($1, 1, length($1)-4), $3}' input
abcdefghi xyz
riosadsef eis
baifafsag eod

相關內容