2016-04-06 15 views
0

出力は私が->後に来る全体のパスをカット/抽出する必要があり、このシンボリックリンクの名前はどのように取得できますか?コマンドの

# ls -l abc.zip 
lrwxrwxrwx 1 sri dba 122 Mar 27 23:37 /a/b/c/abc.zip -> /x/y/z/abc.zip 

ようになります。私はcut -f -dを使用しましたが、何度か動作していないので、列番号が変わっていると思います。だから私はこれに相当するsedが必要です。これは、(GNU SED)あなたのために働くかもしれない

答えて

0

'カット' を使用してあなただけの単一文字の区切り文字を指定することができます。

文字列区切り文字の場合、簡単で明白なオプションはawkです。あなたの場合は、次のように試してみてください:

ls -ls abc.zip | awk -F '->' '{print $2}' 
1

sed -n 's/^l.*->\s*//p' file 
1

あなたが読んでいるのは、シンボリックリンクに関する情報です。 Parsing ls is definitely a bad idea

代わりにreadlinkを使用してはどうですか?フルパスのため

readlink abc.zip 

または-fと:それはシンボリックリンクの読み取り値を行い

readlink -f abc.zip 

例を参照してください:

$ touch a   
$ ln -s a b   # we create a symbolic link "b" to the file "a" 
$ ls -l b 
lrwxrwxrwx 1 me me 1 Apr 6 09:54 b -> a 
$ readlink -f "b" # we check the full "destination" of the symlink "b" 
/home/me/a 
$ readlink "b"  # we check the "destination" of the symlink "b" 
a 
関連する問題