
如果我有一個包含大量目錄資訊的文件,例如:
/home/svdev/src/lib
/home/dev/project/doc
/home/server/etc
我想取得“/home”目錄旁邊的目錄名稱。那麼對於這組數據,我的輸出應該是 svdev, dev, server
答案1
$ sed -e 's,^/home/,,' -e 's,/.*,,' file
svdev
dev
server
這用於sed
首先刪除初始/home/
路徑,然後刪除/
該行剩餘部分中第一個路徑之後的所有內容。
我使用逗號作為s
命令的分隔符號sed
以避免牙籤傾斜綜合症。
另一種方法sed
是將整行替換為之間的第二個內容/
:
$ sed 's,/[^/]*/\([^/]*\)/.*,\1,' file
svdev
dev
server
答案2
一種非常粗略的方法,使用cut
並指定斜線作為分隔符號:
cut -d "/" -f 3 thefile
輸出:
svdev
dev
server
假設目錄全部以/home
答案3
如果你想列印 /home 的子目錄
find /home -type d -maxdepth 1 -mindepth 1
如果路徑是文件的內容,
awk -F '/' '{printf "%s, ",$3}' file.txt