既存のファイルにヘッダーとトレーラーをすぐに追加する方法

既存のファイルにヘッダーとトレーラーをすぐに追加する方法

既存のテキストファイルにタイトルと予告編を追加する簡単な方法はありますか?同じディレクトリに同じテキストファイルがあります。例えばawk
処理方法の説明と協力していただきありがとうございますawk。ありがとうございます。

私が知っているのはかなり多くのステップが含まれているからです。以下を参照してください。

既存のファイルのトレーラーにヘッダーを追加したいとします。警告.txt
ファイルは次のディレクトリにあります。$Source_Dir

テキストファイルには列名が含まれているため、レコードを計算するためのRecord_Count2つの変数があります。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読み取ったファイルの行数。

おすすめ記事