私は次のフォーマットのテキストファイルに曲のリストを書くことができるスクリプトを作成しようとしています:スクリプトのnl(ファイルの行数)コマンドでBashの変数を使用する
#01 - Artist - Title
#02 - Artist - Title
#03 - Artist - Title
#04 - Artist - Title
etc.
私はSpotifyからアーティストとタイトルをエクスポートし、いくつかの場合は手動で一部のフォーマットを調整する必要があります。私は今は手でそれをやっていますが、後でそれを自動化しようとするかもしれません。今のところ私はアーティストのタイトルをTRACKS変数に入れて、スクリプトを実行して#NUMBER - Artist - Title
で貼り付けたいと思っています。私は現在、ファイルに書き込む前に私の出力が正しく出てくるかどうかをテストするのに、ただecho "${NL}"
を使っています。
#!/usr/bin/env bash
TRACKS=$(cat <<-END
Artist - Title
Artist - Title
Artist - Title
Artist - Title
END
)
$NL=$(echo "${TRACKS}" | nl -nrz -w2 -s" - " -)
echo "${NL}"
私がいる問題は、私はどちらかの下に述べた、または単に$NL=nl inputfile.txt
としてスクリプトが"command not found"
を返すようNLコマンドを使用して、どのように関係なくです。なぜ私は変数で使用できないのか分かりません。私は運がないバイナリへの正確なパスを指定しようとしました。それが変数として指定することなくnl inputfile.txt
として使用する場合、それが機能する唯一の方法です。コマンドラインから直接実行するのと本質的に同じです。割り当てを実行する際に
= NL 'として変数を設定し...' 、 '$'はありません。 – leekaiinthesky
今のところ「TRACKS」を実際に使用する必要があるかどうかを検討してください。配列(要素ごとに1つのトラック)を作ることができます。ここでは、 'nl'は' cat'のようにここの文書から直接読み取ることができます。 – chepner
私はちょうどbashスクリプトを使い始めています。配列とループを使って何をしたいのかを完全には理解できません。私は何をしたいかを実現する他の方法があると確信していますが、2つのコマンドで私が望む出力を実現できる 'nl'と' sed'を見つけました。私は 'nl'が文書からの入力を受け入れることを知っています。私はそれを分離して、Spotifyから手作業で整理された情報をtxtファイルから取得します。おそらく、将来私は手動クリーンアップの部分も同様にスクリプト化することができます。 – d1th