Shell-Bashスクリプト[閉じる]

Shell-Bashスクリプト[閉じる]
fld=$(mediainfo Fixing\ One\ of\ Linux\'s\ Biggest\ Flaws.mp4 | awk -F " : " 'NR==10 {print $2}'); 
mkdir "$fld"

mediainfoの出力からPerformerを取得しようとしています。 10行目には以下が含まれます。

Performer                                : The Linux Cast

このファイルには「The Linux Cast」自体が必要です。 bashスクリプトでは機能しません。インラインファイル区切り文字を設定しましたが、中括弧の拡張に失敗しました。 youtube-dlを使用してファイルをダウンロードし、mediainfoを使用して読み込みます。

コードがシェルで機能しない理由を理解していません。おそらくsedや他のコアユーティリティを使用する必要があります。

コンテンツ作成者ごとにファイルを整理してみてください。

ベストアンサー1

行番号に依存しないでくださいPerformer

fld=$(
  mediainfo "Fixing One of Linux's Biggest Flaws.mp4" |
    sed -n 's/^Performer[[:space:]]*:[[:space:]]*//p'
)

またはGNUを使用してくださいgrep

fld=$(
  mediainfo "Fixing One of Linux's Biggest Flaws.mp4" |
    grep -Po '^Performer\s*:\s*\K.*'
)

または以下を使用してくださいexiftool

fld=$(
  exiftool -q -p '$Artist' "Fixing One of Linux's Biggest Flaws.mp4"
)

おすすめ記事