2015-04-25 20 views

回答

0

的問題是用什麼語言有點unclear--腳本?慶典?

如果是這樣,則字符串變量$FOO的長度可用爲${#FOO}。例如要獲得最長的用戶名你可以簡單地做:

grep -Eo '^([^:]+)' /etc/passwd | 
while read NAME 
do 
    echo ${#NAME} ${NAME} 
done | 
sort -n | tail -1 | awk '{print $2}' 

grep命令查找在密碼文件中(從開始直至第一個冒號的所有文本)的用戶名。

while循環輸出名稱的長度以及名稱本身。

sort -n數字排序while循環的輸出。

tail -1從排序後的輸出中取出最後一行,這將是最大的數字。

awk '{print $2}'打印輸出的第二列,即名稱。

除了使用head -1而不是tail -1以外,最短的名字應該是相同的。

請記住,這可能是一條平行線。還有許多其他方法可以做到這一點,包括使用其他腳本語言。

+0

'/ etc/passwd'只顯示* local * accounts;要查看更完整的列表,請考慮使用['getent'](http://man7.org/linux/man-pages/man1/getent.1.html)。同樣,現有的腳本可以簡化... –

相關問題