4

I have one file contains data as follows...

/tutordashboard/manageTutorLogInStatus/?ua=TQ-AUTOCLOSE-REENTER&filterId=089089087087080&dt=1325757272
/tutordashboard/manageTutorLogInStatus/?ua=TQ-AUTOCLOSE-REENTER&filterId=089089087087080&dt=1873982869
/tutordashboard/manageTutorLogInStatus/?ua=TQ-BUTTON-DISABLED&sessionType=1&sessionId=4938718&filterId=97462&dt=1354822214604
/tutordashboard/manageTutorLogInStatus/?ua=TQ-BUTTON-DISABLED&sessionType=1&sessionId=4951063&filterId=95997&dt=1354807593071
/tutordashboard/manageTutorLogInStatus/?ua=TQ-BUTTON-DISABLED&sessionType=2&sessionId=4957338&filterId=99353&dt=1354752909284

How can I get the output that prints till 3rd occurrence of "/" in each line?

5 Answers5

15

It's as simple as this - separated by '/', cut fields 1-4:

cut -d'/' -f1-4

Example:

$ echo /foo/bar/baz/extra | cut -d'/' -f1-4
/foo/bar/baz
Volker Siegel
  • 17,283
2
awk -F/ 'BEGIN{OFS="/";}{print $1,$2,$3}' your_file
Vijay
  • 136
0

cut's better, but with sed:

sed 's|/|\n|3;P;d'

You might need a literal newline with some seds, though.

mikeserv
  • 58,310
0

With perl:

$ perl -F'/' -anle 'BEGIN{$,="/"} print @{[@F[0..2]]}' file
/tutordashboard/manageTutorLogInStatus
/tutordashboard/manageTutorLogInStatus
/tutordashboard/manageTutorLogInStatus
/tutordashboard/manageTutorLogInStatus
/tutordashboard/manageTutorLogInStatus
cuonglm
  • 153,898
0
sed 's_\(/.*/.*\)/.*_\1_' your-file.txt

This is an example:

>sed 's_\(/.*/.*\)/.*_\1_' your-file.txt
/tutordashboard/manageTutorLogInStatus
/tutordashboard/manageTutorLogInStatus