GNU/Linux >> Linux の 問題 >  >> Linux

その行の各セルにヘッダーをコピーしますか?

私はファイルを持っています:

AC  AF  AN
3   0.375   8
3   0.375   8

次のような出力が必要です:

AC  AF  AN
AC=3    AF=0.375    AN=8
AC=3    AF=0.375    AN=8

そのためのUNIXコマンドはありますか?

承認された回答:

awk '
  NR==1 {split($0,a); $1=$1} 
  NR>1 {for(i=1;i<=NF;i++) $i=a[i]"="$i} 
  1' OFS='t' yourfile

説明:

  • デフォルトのフィールドセパレータに基づいて、最初のレコード(ヘッダー行)を配列に分割します。 $1を再割り当てします レコードが新しい出力フィールドセパレータで書き込まれるようにします
  • 残りのレコードについては、フィールドをループして、各フィールド値の前に、=で区切られたフィールドインデックスに対応する配列要素を追加します。
  • 出力フィールドの区切り文字としてタブを使用してレコードを印刷する

Linux
  1. MySQLデータベースをコピーする方法

  2. cp:コマンドが見つかりません

  3. ファイルを検索してコピーする

  1. 各ファイルにヘッダーを含む行数でファイルを分割しますか?

  2. 最初の行の最初のフィールドを出力する cut または awk コマンド

  3. firefox:入力フィールドの色

  1. ファイルの内容を表示せずにクリップボードにコピーしますか?

  2. 各プログラムまたはサービスが/etc/ passwdに独自のアカウントを持っているのはなぜですか?

  3. Linuxcpコマンド