cshのシェル内のパスからファイル名を抽出 - ファイルのリストから、

StackOverflow https://stackoverflow.com/questions/1498643

  •  19-09-2019
  •  | 
  •  

質問

のパスからファイル名を抽出する方法。私は、ファイルのリストを持っています。私はcshのシェルを使用していて、AWK、sedは、perlがインストールされています。

/ dfgfd / dfgdfg /ファイル名

私に与える必要があります。

ファイル名

私が試したベース名:

    find $PROJDIR -name '*.c' -o -name '*.cc' -o -name '*.h'
 | xargs grep -l pattern | xargs basename

と、それは私に次のエラーを与えます:

ベース名:あまりにもいくつかの引数 詳細については `ベース名--help」を試してみてください。

THX

役に立ちましたか?

解決

標準プログラムbasenameは、あなたが欲しいものを行います:

$ basename /dfgfd/dfgdfg/filename
filename

他のヒント

回避策のこの種のは私のために働きました。あなたはperlの持っていたので、これを実行しなければならないと述べました。これは、/(結果的に削除)何も最後まで、すべての空白以外のテキストを置き換えます。

find $PROJDIR -name '*.c' -o -name '*.cc' -o -name '*.h'
 | xargs grep -l pattern | perl -pi -e "s/\S+\///g"

[OK]を、私はAWKを使って素敵な解決策を見つけます:

    find  $PROJECT_DIR  -name '*.c' -o -name '*.cc' -o -name '*.h' 
| xargs grep -l PATTERN | awk -F "/" '{print $NF}'
find $PROJDIR -name '*.c' -o -name '*.cc' -o -name '*.h' | xargs grep -l pattern 
| xargs -n1 basename

このを試してみてください!!

引数として単一パスパラメータaccepetベース名として、私たちはそれを一つずつ分割するxargsのを強制します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top