내 사용자 디렉토리에 다음 Excel 파일이 있습니다.
430_XFRtoDML.xlsx
431_XFRtoDML.xlsx
440_XFRtoDML.xlsx
450_XFRtoDML.xlsx
451_XFRtoDML.xlsx
465_XFRtoDML.xlsx
500_XFRtoDML.xlsx
자취:/home/user
bit_list.txt
아래에 언급된 텍스트 파일을 생성하는 스크립트를 작성하고 싶습니다 . :5.
파일에서 xlsx 확장자를 제거한 다음 처음 3개의 숫자를 제거 해야 합니다 . 예를 들어430_XFRtoDML:5. 430
filenames=`ls *.xlsx`
for eachfile in $filenames
do
echo $eachfile
done
예상 출력:
$ cat bit_list.txt
430_XFRtoDML:5. 430
431_XFRtoDML:5. 431
440_XFRtoDML:5. 440
450_XFRtoDML:5. 450
451_XFRtoDML:5. 451
465_XFRtoDML:5. 465
500_XFRtoDML:5. 500
답변1
- 파싱되지 않음
ls
이지만*.xlsx
for 루프에서 직접 사용됩니다. - 껍질을 사용하세요매개변수 대체가능성.
printf
대신 사용echo
.
for file in *.xlsx; do
name="${file%.*}"
num="${file:0:3}"
printf '%s:5. %d\n' "$name" "$num"
done > bit_list.txt