这是我通过ls -l
获得的一些示例输入:
-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
我想仅使用
sed
来打印出最后一列和第五列:zcmp 1779
zdiff 5766
zegrep 142
zfgrep 142
zforce 2133
zgrep 5940
ypdomainname -> hostname 8
我试图找到一个正则表达式来匹配,但没有成功。而且我也不允许使用
awk
或cut
。先感谢您。
最佳答案
尝试这个;
ls -l | sed -r 's/^(\S+\s+){5}(\S+\s+){3}/\1/' | sed 's/^\(.*\) \(.*\)$/\2\ \1/g'
关于regex - 仅使用“sed”而不使用“awk”从记录中选择特定列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38758214/