awkのタブ区切り値

awkのタブ区切り値

https://stackoverflow.com/questions/5374239/tab-separated-values-in-awk#comment23678233_5376527 正確なコードがコピーされました。

echo "$line" 

戻ってくる

LOAD_SETTLED    LOAD_INIT       2011-01-13 03:50:01

  1. echo "$line" | awk '{print $1}' LOAD_SETTLEDを返す
  2. echo "LOAD_SETTLED LOAD_INIT 2011-01-13 03:50:01" | awk '{print $1}' LOAD_SETTLEDを返す
  3. echo "$line" | awk -v FS='\t' -v OFS='\t' 'BEGIN {OFS = FS} {$3 = var; print}' 行全体を返します。
  4. echo "$line" | awk -v var="$mycol_new" -F'\t' 'BEGIN {OFS = FS} {$3 = var; print}'行全体を返します。

メモ:全体的に> LOAD_SETTLED LOAD_INIT 2011-01-13 03:50:01

文脈によると、LOAD_SETTLEDどこで間違っていますか?
コピーしているタブ区切り文字が何であるかわかりません。 Ctrl + TabはPowerShellでターミナルタブを切り替えるためのものなので、手動でWSLにタブを挿入する方法がわかりません。質問から$lineをコピーしました。


うん、多分そうではechoないかもしれない。

printf "LOAD_SETTLED\tLOAD_INIT\t2011-01-13 03:50:01\n" | awk -v FS='\t' -v OFS='\t' 'BEGIN {OFS = FS} {$3 = var; print}'

返品:
LOAD_SETTLED LOAD_INIT

printf "LOAD_SETTLED\tLOAD_INIT\t2011-01-13 03:50:01\n" | awk -v var="$mycol_new" -F'\t' 'BEGIN {OFS = FS} {$3 = var; print}'

返品: LOAD_SETTLED LOAD_INIT

LOAD_SETTLEDなぜ今、2つのフィールドが返されるのかを期待する必要があります。


オリジナル回答タブで区切られた文字列から最初の列を取得します。最初の列を取得するためにコピーしようとしました。しかし、今、2つの熱が発生しました。これが私の混乱です。

アップデート:問題が修正されました。私のせい。

ベストアンサー1

おそらく、echoはこの目的に適したツールではないかもしれません。これを試してみてください。

printf "LOAD_SETTLED\tLOAD_INIT\t2011-01-13 03:50:01\n"|awk  '{print $1}'

おすすめ記事