
我正在解析一個文件,並使用 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