ファイルを下に移動すると、新しい行が生成されるように、2番目のファイルタグ「b」が最初のファイルタグ「a」を印刷したいと思います。 2番目のファイルの最初の行が最後に達するまで最後まで印刷したいと思います。最初のファイルの行。これをファイル自体に入れる必要がありますか?それともターミナルでできますか?
今すること:
paste -d ' ' a b
1 a
2 b
3 c
4 d
5 e
6
7
8
9
希望の出力:
1 ↓
2 a
3 b
4 c
5 d
6 e
7
8
9
1
2
3 ↓
4 a
5 b
6 c
7 d
8 e
9
Re-looping
1 b
2 c
3 d
4 e
5
6
7 ↓
8 List is about to loop
9 a
答え1
この文書はあなたの問題を直接解決するものではありませんが、あなたが探しているものに近い方向に案内します。
PS:ところで、私はpaste
このデータ処理タスクにそれを使用しません。私はawkや他のより適切なツールを選択します。
とにかく、paste
次のような「汚れた」ソリューションを検討できます。
ケース1:
$ k=3
$ paste -d ' ' a <(printf ' %.0s\n' $(seq 1 $k);cat b)
1
2
3
4 a
5 b
6 c
7 d
8 e
9
#You can adjust the value of $k with a kind of loop
ケース2:
$ k=3
$ s=4
$ paste -d ' ' a <(printf ' %.0s\n' $(seq 1 $k);tail -n +$s b)
1
2
3
4 d
5 e
6
7
8
9
答え2
a
in単語とin単語の外積を作成することが目的であれば、次のように使用b
できます。join
$ join -1 2 -2 2 a b
1 a
1 b
1 c
1 d
1 e
2 a
2 b
2 c
2 d
2 e
3 a
3 b
3 c
3 d
3 e
4 a
4 b
4 c
4 d
4 e
5 a
5 b
5 c
5 d
5 e
6 a
6 b
6 c
6 d
6 e
7 a
7 b
7 c
7 d
7 e
8 a
8 b
8 c
8 d
8 e
9 a
9 b
9 c
9 d
9 e
存在しないフィールドでファイルを結合すると、両方のファイルに可能なすべての行の組み合わせが生成されます。これにより、各行の先頭にスペースが挿入されます。