Skip to content

<Shell>ディレクトリ内のファイル名を全て取得し、任意のテキストと結合する

Published: at 00:00

調べた経緯

50個程度あるファイルの名前を配列に登録する必要があったから。

コード(パターン1)

ls | awk '{print "\"sample/" $NF "\","}'

# 「"sample/ファイル名.拡張子",」の形で表示される
  1. lsコマンドで、対象のディレクトリ内のファイルを表示。 ※事前に対象のディレクトリに移動しておく。

  2. 「|」(パイプライン)で処理をつなぐ

  3. awkコマンドで表示するファイル名に、前には「“sample/」、後ろには「”,」を追加

コード(パターン2)

find . -type f | awk -F/ '{print "\"twentytwentyfour/" $NF "\","}'

# 「"sample/ファイル名.拡張子",」の形で表示される

大まかな流れはパターン1と同じだが、findコマンドの場合、「./ファイル名.拡張子」のように、「./」がついているので、削除のためにawkコマンドで「-F/」を指定し、「./」を削除する。

終わりに

手入力するよりもかなり楽。