想在第二次斜线下方之前削减?

时间:2015-03-27 15:09:07

标签: linux bash awk grep cut

我想在第二个斜线斜杠之前剪切以下行。

/home/john
/home/mathew
/home/alexander/public_html/path/to/file/1
/home/testuser/public_html/path/to/file/1
/home/hellouser/public_html/path/to/file/13

/home/john
/home/mathew
/home/alexander
/home/testuser
/home/hellouser

如何做到这一点?使用grep或cut或awk或sed?我不确定。

4 个答案:

答案 0 :(得分:3)

您可以尝试以下awk命令。

awk  'BEGIN{FS=OFS="/"}{print $1,$2,$3}' file

BEGIN{FS=OFS="/"}位于BEGIN区块,/被设置为FSOFS的值。打印功能上的逗号打印OFS值。

awk -F/ '{print FS$2FS$3}' file

$ awk -F/ '{print $1FS$2FS$3}' file
/home/john
/home/mathew
/home/alexander
/home/testuser
/home/hellouser

答案 1 :(得分:3)

这是cut发明的工作:

$ cut -d'/' -f1-3 file 
/home/john
/home/mathew
/home/alexander
/home/testuser
/home/hellouser

你的问题有一个很大的线索:"想削减 ......"

答案 2 :(得分:1)

awk -F/ -vOFS="/"  'NF=3' file

/home/john
/home/mathew
/home/alexander
/home/testuser
/home/hellouser

答案 3 :(得分:0)

您可以使用awk

awk -F/ '{print "/" $2 "/" $3}'