我想獲得/ etc/sudoers中最長的行。
對於wc。如何通過awk將whitspace的數量保持不變?
sudo wc -L /etc/sudoers
90 /etc/sudoers
對於AWK
sudo awk '{if(length>L){L=length;s=$0}}END{print NR,L,s}' /etc/sudoers
27 83 Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
AWK治療8個空格在第27行中僅有1的空白,8-1 = 7,90-83 = 7。
所以用wc得到的數字比awk大7。
如何用awk保持行內空白空間的數量不變,以使awk將第27行中的8個空格保持不變,而不是1.
如何修復命令sudo awk '{if(length>L){L=length;s=$0}}END{print NR,L,s}' /etc/sudoers
,用awk輸出以下結果。
27 90 Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
debian @ wifi:〜$ sudo awk'{line = gensub(「^ \ t」,「」,「1」);如果(長度(行)> L){L =長度(行); s =行}} END {print NR,L,s}'/ etc/sudoers –
awk:第3行:函數gensub永遠不會定義 –
@ it_is_a_literature如果你不使用'gawk',那麼'sub'應該是可用的。更新命令 –