既存のテキストファイルにタイトルと予告編を追加する簡単な方法はありますか?同じディレクトリに同じテキストファイルがあります。例えばawk
?
処理方法の説明と協力していただきありがとうございますawk
。ありがとうございます。
私が知っているのはかなり多くのステップが含まれているからです。以下を参照してください。
既存のファイルのトレーラーにヘッダーを追加したいとします。警告.txt
ファイルは次のディレクトリにあります。$Source_Dir
テキストファイルには列名が含まれているため、レコードを計算するためのRecord_Count
2つの変数があります。Actual_Record_Count
Record_Count=`wc -l < ${Source_Dir}/${Output_File_Name} | tr -d " "`
Actual_Record_Count=`expr ${Record_Count} - 1`
ALERT
まず、タイトル付きのテキストファイルを作成します。$Target_Dir
echo ${Bus_date} >${Target_Dir}/${Output_File_Name}
Alert.txt
$Source_Dir
次に、で生成された新しいファイルにを追加しました。$Target_Dir
cat ${Source_Dir}/${Output_File_Name} >> ${Target_Dir}/${Output_File_Name}
Alert.txt
最後に予告編をに追加します$Target_Dir
。
トレーラーにはレコード数が含まれます。
echo "EOF${Actual_Record_Count}" >>${Target_Dir}/${Output_File_Name}
ベストアンサー1
$Bus_date
したがって、行にヘッダーとして追加したいいくつかのシェル変数があります。その後はcontentが続き$Source_Dir/$Output_File_Name
、その後にファイルの行数から1を引いた文字列EOFNN
が続くはずです。NN
使用awk
:
awk -v head="$Bus_date" 'BEGIN { print head } { print } END { print "EOF" NR-1 }' "$Source_Dir/$Output_File_Name" >"$Target_Dir/$Output_File_Name"
スクリプトは次のとおりです。
BEGIN { print head }
{ print }
END { print "EOF" NR-1 }
コマンドラインでawk
変数をhead
値に設定します$Bus_date
。この値は、指定されたファイルからチャンク読み取りを開始する前に出力されますBEGIN
。
この{ print }
ブロックは、指定されたファイルが変更なしでそのまま渡されることを保証します。
このEND
ブロックは、組み込み変数を使用してNR
これまでに読み取ったレコード(行)の数を保持します。END
チャンク単位でNR
読み取ったファイルの行数。