ファイルの表示と追加+1

ファイルの表示と追加+1

ディレクトリ内のすべてのnanoファイルを一覧表示するスクリプトを作成しています。 hanはファイルに数字を追加します。 (各ファイルに+1が追加されます)これにより、ユーザーはnanoファイルを見ることができます。

これが私が今まで持っているものです。私が指摘したいのは、すべてのファイル名がで終わるということです。_logこれがGrepがこのように機能することを望む理由です。

path=~/home/folder/list

list=$(`ls $path | grep -i \*_log`)

printf '%s\n' "${list[@]}" | nl -v 1

read -p "Number of file to be displayed:" numb

sudo cat $path/${list [numb]}

ベストアンサー1

私が正しく理解した場合は、すべてのファイルを含む配列を作成してから、ユーザーが入力した番号に対応するファイルの内容を表示したいと思います。もしそうなら、必要以上に仕事をより複雑にすることです。これで十分です。

## Get the files into the array $list
list=(/home/folder/list/*_log) 

## Display the file names
for i in ${!list[@]}; do 
    printf "%s: %s\n" $i "${list[i]}"; 
done
## Get the user input
read -p "Number of file to be displayed:" numb
## display the file (don't use sudo unless absolutely necessary)
cat "${list[numb]}"

フルパスを含むファイル名が表示されます。名前のみを表示するには、forループを次のように変更します。

## Display the file names
for i in ${!list[@]}; do 
    printf "%s: %s\n" $i "${list[i]##*/}"
done

おすすめ記事