クライアントから受け取った.zipファイルを処理するスクリプトを作成しています。作業をしてみると、受信した.zipファイルの内容を確認手段としてログファイルにリストしたい場合が多いです。テストファイルからファイルリストを抽出して、ログファイルにファイルリストを挿入できました。
これで、ログファイルから抽出されたファイル名の前に改行とタブを追加してログファイルをクリーンアップしようとしています。一番近くにいたコメントしました。次の例では、1行の出力にのみタブを追加します。次にSEDの使用を検討しましたが、SEDに関する知識が不足しており、ログファイルに空白行のみが表示されました。
log_message "-------- Extracting files"
zipflist="`unzip -Z1 $file`"
log_message "Files found in received zip file..."
# log_message $'\n\t\t\t'"$zipflist"
log_message `sed '1 s/^/$'\t'"$zipflist"/' `
"log_message"関数は、日付/時刻の前に付けられた文字列をファイルに渡します。
これは私が今まで得た最高の結果です。
2023-12-29 09:31:44: Files found in received zip file...
2023-12-29 09:31:44:
loremipsum.pdf
loremipsum.txt
dummy_report.xml
出力が次のようになります。
2023-12-29 09:31:44: Files found in received zip file...
2023-12-29 09:31:44:
loremipsum.pdf
loremipsum.txt
dummy_report.xml
RHELのSED、tr、またはその他の基本ユーティリティを使用してこれを行う方法はありますか?会社が承認していないものはインストールできないため、持っているものを使用することをお勧めします。 (承認の手間を軽減します)
ベストアンサー1
% str=$'foo\nbar\ndoo\n'
% printf "%s" "$str" |sed -e $'s/^/\t/'
foo
bar
doo
(リストで他のタスクを実行する予定がない場合は、unzip | sed
varを使用せずに直接実行できます。)