私はUnixに初めてアクセスし、このループを実行するのに問題があります。
ファイルのリストを含むディレクトリがあり、すべてのファイルをテキストファイルに一覧表示できます。
次の内容を含むテキストファイルがあります。
- ファイル名01.xml
- ファイル名02.xml
- ファイル名03.xml
- ファイル名NN.xml
コンテンツごとに別々のテキストファイルを作成したいと思います。出力は次のようになります。
- テキストファイルのファイル名:Filename01.txt - テキストファイルの内容:FileName01.xml
その他など
forループを使用して各コンテンツのテキストファイルを作成しようとしても成功しないようです。
現在作成中のスクリプトは次のとおりです。
#!/bin/bash
ls /directory/input > filelist.txt
for f in filelist.txt;
do
printf f > 'file_*.txt'
done
答え1
私はお勧めします
#!/bin/bash
shopt -s nullglob
for f in /directory/input/*.xml; do
bn=${f##*/}
printf '%s\n' "$bn" > "${f%.xml}.txt"
done
バラよりシェルパラメータ拡張プレフィックスとサフィックスを削除する構文のガイドラインです。