実践的なサンプルでの作業
ここでは、これまで学んだことをより現実的なサンプルに適用してみましょう。システムログ、設定ファイル、スクリプトなどは、一貫した改行コードを確保するために処理する必要があることがよくあります。
まず、混合した改行コードを持つサンプルのログファイルを作成しましょう。
cd ~/project/line_feeds
cat > server_log.txt << EOF
[2023-05-15 08:00:01] Server started^M
[2023-05-15 08:05:23] User login: admin
[2023-05-15 08:10:45] Configuration updated^M
[2023-05-15 08:15:30] Backup process started
[2023-05-15 08:30:12] Backup completed^M
[2023-05-15 09:00:00] Scheduled maintenance started
EOF
このファイルを確認しましょう。
cat -v server_log.txt
一部の行末に復帰文字 (^M
) が表示されるはずです。
[2023-05-15 08:00:01] Server started^M
[2023-05-15 08:05:23] User login: admin
[2023-05-15 08:10:45] Configuration updated^M
[2023-05-15 08:15:30] Backup process started
[2023-05-15 08:30:12] Backup completed^M
[2023-05-15 09:00:00] Scheduled maintenance started
このログファイルを整理しましょう。
col -b < server_log.txt > clean_server_log.txt
結果を確認しましょう。
cat -v clean_server_log.txt
出力には復帰文字が含まれないはずです。
[2023-05-15 08:00:01] Server started
[2023-05-15 08:05:23] User login: admin
[2023-05-15 08:10:45] Configuration updated
[2023-05-15 08:15:30] Backup process started
[2023-05-15 08:30:12] Backup completed
[2023-05-15 09:00:00] Scheduled maintenance started
次に、もう 1 つの一般的な例として、一貫性のない改行コードを持つスクリプトファイルを作成しましょう。
cd ~/project/line_feeds
cat > script.sh << EOF
#!/bin/bash^M
## This is a sample script^M
echo "Starting script..."^M
for i in {1..5}
do^M
echo "Processing item $i"^M
done
echo "Script completed."
EOF
このファイルを確認しましょう。
cat -v script.sh
以下のように表示されます。
#!/bin/bash^M
## This is a sample script^M
echo "Starting script..."^M
for i in {1..5}
do^M
echo "Processing item $i"^M
done
echo "Script completed."
このスクリプトファイルを整理しましょう。
col -b < script.sh > clean_script.sh
chmod +x clean_script.sh
結果を確認しましょう。
cat -v clean_script.sh
出力には一貫した改行コードが表示されるはずです。
#!/bin/bash
## This is a sample script
echo "Starting script..."
for i in {1..5}
do
echo "Processing item $i"
done
echo "Script completed."
一貫した改行コードは、シェルスクリプトにとって特に重要です。混合した改行コードは実行エラーを引き起こす可能性があります。