このコマンドラインを理解する必要があります。
file=`echo $1 | xargs -n 1 basename | cut -d '.' -f1`
ベストアンサー1
ファイル名の一部(パスを含む)を変数に割り当てますfile
。具体的には、.
ファイル自体のファイル名の最初の文字の前のビットです。つまり、このようなことを取り、ビットを/some/path/hello.world
解析しますhello
。
1つの秘密は、コマンドラインでパイプラインの各部分を実行することです。
$ thing="/some/path/hello.world"
$ echo "$thing"
/some/path/hello.world
$ echo "$thing" | xargs -n 1 basename
hello.world
$ echo "$thing" | xargs -n 1 basename | cut -d '.' -f 1
hello
バックティックはパイプの出力を返し、に割り当てるために使用されますfile
。これは$1
、コマンドラインの最初の引数(対応するスクリプトまたはその関数が属するシェル関数の場合)です。
xargs -n 1 basename
プレーンの代わりに使用する唯一の理由は、ユーティリティが標準入力から読み取らず、標準入力から読み取るbasename
ためです。basename
xargs
bash
orで同じもののより短くて速いバージョンksh93
です。
file=${1##*/}
file=${file%%.*}