Linuxパターン検索

Linuxパターン検索

次のような多くのディレクトリ情報を含むファイルがある場合:

/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

おすすめ記事