文字列の2つの列を連結します。

文字列の2つの列を連結します。

2つの文字列列を連結してそれらの間に_を挿入するにはどうすればよいですか?

ファイルがあります:

L  o     45
OK kklkj 5

必要な結果は次のとおりです。

L_o      45
OK_kklkj 5

私は試した:

awk '{printf "%12s %22.2f\n", $1+'_'+$2, $3}' file

文字列を数値に変換します。ありがとうございます。

ベストアンサー1

使用sed:

sed 's/[[:blank:]]\{1,\}/_/' file

これは、1つ以上の連続したスペース(スペースまたはタブ)が最初に表示されることを単一のアンダースコア文字に置き換えます。

GNUを使用すると、sed次のように短縮できます。

gsed -E 's/\s+/_/' file

これは、指定されたデータに対して上記と同じですが、最初の2つのフィールドの間に対応する文字がある場合は、より大きな空白文字セットと一致します(\sPCRE表記は同様に一致し、[[:space:]]垂直タブ文字、キャリッジリターン文字も含む)。キャリッジリターン文字とフォームフィード文字)。

質問のデータが与えられると、次のような出力が生成されます。

L_o     45
OK_kklkj 5

おすすめ記事