파일 표시 및 추가 +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

관련 정보