2016-08-04 25 views
-2

下面是一些樣本輸入我從做ls -l獲得:僅使用記錄選擇特定的列「sed的」不使用「的awk」

-rwxr-xr-x 1 root root 1779 Jan 10 2014 zcmp 
-rwxr-xr-x 1 root root 5766 Jan 10 2014 zdiff 
-rwxr-xr-x 1 root root  142 Jan 10 2014 zegrep 
-rwxr-xr-x 1 root root  142 Jan 10 2014 zfgrep 
-rwxr-xr-x 1 root root 2133 Jan 10 2014 zforce 
-rwxr-xr-x 1 root root 5940 Jan 10 2014 zgrep 
lrwxrwxrwx 1 root root  8 Dec 5 2015 ypdomainname -> hostname 

我想用打印出的最後一列和第5列ONLY sed這樣的:

zcmp 1779 
zdiff 5766 
zegrep 142 
zfgrep 142 
zforce 2133 
zgrep 5940 
ypdomainname -> hostname 8 

我試圖找到一個正則表達式匹配,但沒有成功。而且我也不允許使用awkcut。 預先感謝您。

+3

「不允許」聽起來更像是作業,而不是關於如何完成實際任務的問題。 –

+1

而我們並不是爲你做的,我們來幫你修復你的代碼。用你最好的嘗試來解決問題,你當前的輸出,任何錯誤信息,以及你爲什麼認爲你的代碼應該工作(或者爲什麼不工作)的一般描述來更新你的Q,你可能會得到一些幫助。祝你好運。 – shellter

+1

同時考慮一下當你的答案使用'sed'時,如果有一些文件的名字存在空格,將會解決這種情況。 –

回答

-1

試試這個;

ls -l | sed -r 's/^(\S+\s+){5}(\S+\s+){3}/\1/' | sed 's/^\(.*\) \(.*\)$/\2\ \1/g'