unix コマンドは、各行に「/」が 3 番目に表示されるまで印刷します。

unix コマンドは、各行に「/」が 3 番目に表示されるまで印刷します。

次のデータを含むファイルがあります。

/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

各行で3番目に表示される「/」で印刷される出力を取得するにはどうすればよいですか?

答え1

とても簡単です。 「/」で区切られたフィールド1-4を切り取ります。

cut -d'/' -f1-4

例:

$ echo /foo/bar/baz/extra | cut -d'/' -f1-4
/foo/bar/baz

答え2

awk -F/ 'BEGIN{OFS="/";}{print $1,$2,$3}' your_file

答え3

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

例は次のとおりです。

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

答え4

そしてperl

$ perl -F'/' -anle 'BEGIN{$,="/"} print @{[@F[0..2]]}' file
/tutordashboard/manageTutorLogInStatus
/tutordashboard/manageTutorLogInStatus
/tutordashboard/manageTutorLogInStatus
/tutordashboard/manageTutorLogInStatus
/tutordashboard/manageTutorLogInStatus

関連情報