Command-Line

如何簡化此命令以僅使用 awk?

  • November 4, 2010
awk '/user/ {print $1 }' /etc/userdomains | sed 's/://'

/etc/userdomains 的格式是

domain.tld: user
otherdomain.tld: otheruser

最簡單的方法是將欄位分隔符設置為“:”

awk -F":" '$2~/user/{print $1}' /etc/userdomains

And if you want to check for exact username, 

awk -F"[ \t]*:[ \t]*" '$2=="user"{print $1}' /etc/userdomains

awk有一個sub(regexp, replacement, target)函式可以找到regexpin target($0預設情況下) 的第一次出現並將其替換為replacement(in-place):

awk '/user/ {sub(/:/, ""); print $1}' /etc/userdomains

引用自:https://unix.stackexchange.com/questions/3459