words.txt
Linuxシステムには、次の行を含むファイルがあります。各文字列をどのように繰り返し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 番目のフィールドがすべて空であるため、最終的にすべてを結合します。