$file1
各人の2行のデータを含むデータファイル()があります。他のデータファイルでデータの3行目()を展開する必要があります$file2
。だから私の入力は次のようになります
>cat $file1
bob 1 1 0
bob 1 0 1
alan 0 0 1
alan 0 1 1
>cat $file2
bob a a b
alan a c a
したがって、望ましい結果は次のとおりです。
>cat $file3
bob 1 1 0
bob 1 0 1
bob a a b
alan 0 0 1
alan 0 1 1
alan a c a
他のすべての行を分散する必要がある場合は、paste
次のように使用します。
>paste '-d\n' $file1 $file2
これを達成するための最良のツールは何ですか?を使用していますzsh
。
ベストアンサー1
のみ:
paste -d '\n' -- - - "$file2" < "$file1"
($file2
いいえと仮定-
)。
または(変数の内容、ファイル名)に改行文字が含まれていない場合、またはスペースまたはタブで始まらない場合は、sed
GNUを使用してください。$file2
sed "2~2R$file2" "$file1" < "$file2"
使用してくださいawk
(文字が$file1
含まれていない場合=
(または含まれている場合は前の部分は許可されているawk変数名ではありません)):
export file2
awk '{print}
NR % 2 == 0 {if ((getline l < ENVIRON["file2"]) > 0) print l}
' "$file1"