2016-06-16 20 views
0

我不能理解下面的代碼。我知道它做了什麼排序,但是當它獨自一人時,我的意思是它沒有什麼後,我不知道,我也沒有找到任何書中的東西,甚至沒有在谷歌。有人對這條線給出了一個很好的解釋,因爲我無法理解它。我知道幫助切斷的是讀入口並給出結果。它指的是豬病的文件行1至6和讀取歸檔等passwd.Translate的empty.Thanks很多後在一起切割和排序

cut -d: -f1,6 /etc/passwd | tr : ' ' | sort

回答

4

切斷從文件中的每一行中刪除的部分。

-d: use ':' instead of TAB for field delimiter. 

-f1,6 select 1 and 6 fields. 

/etc/password讀取文件,沒有文件或文件爲' - '時讀取標準輸入。

cut -d: -f1,6 /etc/passwd輸出例如:

root:/root 
bin:/bin 
daemon:/sbin 
adm:/var/adm 
lp:/var/spool/lpd 
sync:/sbin 
shutdown:/sbin 
halt:/sbin 
mail:/var/spool/mail 
uucp:/var/spool/uucp 
operator:/root 
games:/usr/games 
gopher:/var/gopher 
ftp:/var/ftp 
nobody:/ 
dbus:/ 
vcsa:/dev 
abrt:/etc/abrt 
haldaemon:/ 
ntp:/etc/ntp 

|管道,由一個控制操作符|分隔的一個或多個命令的序列或| &。

命令「cut -d:-f1,6/etc/passwd」的標準輸出通過管道連接到命令「tr -d:」'「的標準輸入。如果-d沒有給出

TR翻譯或刪除字符,則會出現

翻譯都SET1和SET2出現。(男人TR)

所以輸出

root /root 
bin /bin 
daemon /sbin 
adm /var/adm 
lp /var/spool/lpd 
sync /sbin 
shutdown /sbin 
halt /sbin 
mail /var/spool/mail 
uucp /var/spool/uucp 
operator /root 
games /usr/games 
gopher /var/gopher 
ftp /var/ftp 
nobody/
dbus/
vcsa /dev 
abrt /etc/abrt 

命令「tr:」'「的標準輸出也通過管道連接到命令'sort'的標準輸入

0

您可以閱讀它here

cut -> remove sections from each line of files 
-d, --delimiter=DELIM 
     use DELIM instead of TAB for field delimiter 
-f, --fields=LIST 
     select only these fields; also print any line that contains no delimiter character 
     unless the -s option is specified. 
     In your case, 1 and 6 
/etc/passwd -> With no FILE, or when FILE is -, read standard input. 
     In your case, read the passwd file 
tr : ' ' - > translate or delete characters from : to ' ' 
sort -> sort your output