次のような多くのディレクトリ情報を含むファイルがある場合:
/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
は、行全体を次の間の2番目の内容に置き換えることです/
。
$ sed 's,/[^/]*/\([^/]*\)/.*,\1,' file
svdev
dev
server