我想用 awk 迭代我的檔案和所有作業正常,但是當嘗試插入 myCOLOR和WHITE變數時,我意識到我必須首先在 awk 命令中初始化它,如下所示:-v COLOR="${COLOR}"和WHITE="${WHITE}". 然而,當我這樣做時,我開始收到以下錯誤:
awk: warning: escape sequence `\e' treated as plain `e'
awk: cmd. line:1: WHITE=\e[1;37m
awk: cmd. line:1: ^ backslash not last character on line
awk: cmd. line:1: WHITE=\e[1;37m
awk: cmd. line:1: ^ syntax error
完整代碼:
WHITE="\e[1;37m"
COLOR="\e[1;31m"
awk -v COLOR="${COLOR}" WHITE="${WHITE}" '{system("sleep 0.1");print " (COLOR" NR "WHITE) " $0 }' < settings.tropx
settings.tropx 檔案:
some setting
some other setting
set ting
other setting
請解釋這可能是什么原因以及如何解決它,謝謝!
uj5u.com熱心網友回復:
請你試試:
#!/bin/bash
WHITE=$'\e[1;37m'
COLOR=$'\e[1;31m'
awk -v COLOR="$COLOR" -v WHITE="$WHITE" '
{
system("sleep 0.1")
print " ("COLOR NR WHITE") " $0
}
' settings.tropx
我們需要在$'..'bash 中使用 ANSI 參考來包含轉義序列。但是如果你沒有使用-v機制的具體原因,你也可以說:
awk '
BEGIN {COLOR="\033[1;31m"; WHITE="\033[1;37m"}
{
system("sleep 0.1")
print " ("COLOR NR WHITE") " $0
}
' settings.tropx
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/468640.html
