Bashで次の単語をリンクする方法

Bashで次の単語をリンクする方法

words.txtLinuxシステムには、次の行を含むファイルがあります。各文字列をどのように繰り返しuserて、1から4までの数字を追加appleできますか?banana

user
apple
banana

予想出力:

user1
user2
user3
user4
apple1
apple2
apple3
apple4
banana1
banana2
banana3
banana4

以下を試しましたが、1つの文字列でのみ機能します。

seq 1 4 | awk {'print $0 "user"'}

ベストアンサー1

awk標準ツールボックスはおそらく最良の選択肢でしょう。

awk -v min=1 -v max=4 -v increment=1 '
  {for (i = min; i <= max; i += increment) print $0 i}' words.txt

GNUツールからインスピレーションを得る@JJoao 2つのファイルラインのデカルト積を取得する方法:

join -t $'\n' -j2 -o1.1,2.1 words.txt <(seq 4) | paste -d '\0' - -

2番目のフィールドにwords.txt結合して出力する場合seq 4、ここではフィールド区切り文字を改行で定義したため、2番目のフィールドはありません。つまり、2 つのファイルの各行に対して 2 番目のフィールドがすべて空であるため、最終的にすべてを結合します。

おすすめ記事