我有两个像这样的文件。
档案-A
Red
Green
Blue
Yellow档案-B
Car
Bus
Van
Bike我必须按照file-C定义的变量编写它们的内容。(每次文件-A和文件-B行数相等)
预期产出:
Red Car
Green Bus Green
Blue Blue Blue
Yellow这就是我试过的(我必须这样做)
mycolor="file-A"
myvehicle=$(cat file-B)
while read -r color
do
for vehicle in $myvehicle
do
echo $color $vehicle
echo $color $vehicle $color
echo $color $color $color
echo $color
done
done <$mycolor > file-C然后我得到了输出
Red Car
Red Car Red
Red Red Red
Red
Red Bus
Red Bus Red
Red Red Red
Red
Red Van
Red Van Red
Red Red Red
Red
Red Bike
Red Bike Red
Red Red Red
Red
Green Car
Green Car Green
Green Green Green
Green
Green Bus
Green Bus Green
Green Green Green
Green
Green Van
Green Van Green
Green Green Green
Green
Green Bike
Green Bike Green
Green Green Green
Green
Blue Car
Blue Car Blue
Blue Blue Blue
Blue
Blue Bus
Blue Bus Blue
Blue Blue Blue
Blue
Blue Van
Blue Van Blue
Blue Blue Blue
Blue
Blue Bike
Blue Bike Blue
Blue Blue Blue
Blue
Yellow Car
Yellow Car Yellow
Yellow Yellow Yellow
Yellow
Yellow Bus
Yellow Bus Yellow
Yellow Yellow Yellow
Yellow
Yellow Van
Yellow Van Yellow
Yellow Yellow Yellow
Yellow
Yellow Bike
Yellow Bike Yellow
Yellow Yellow Yellow
Yellow有人能帮我弄清楚这个吗?提前感谢!
注意:我不允许使用jq或其他语言如JavaScript、Python等。
发布于 2022-11-04 14:42:46
我将利用GNU AWK来完成以下任务,让file1.txt内容成为
Red
Green
Blue
Yellow和file2.txt含量是
Car
Bus
Van
Bike然后
awk 'FNR==NR{arr[FNR]=$1;next}FNR==1{print arr[1],$1}FNR==2{print arr[2],$1,arr[2]}FNR==3{print arr[3],arr[3],arr[3]}FNR==4{print arr[4]}' file1.txt file2.txt给予输出
Red Car
Green Bus Green
Blue Blue Blue
Yellow说明:FNR是已处理文件中的行数,NR是全局行数,因此模式FNR==NR的操作仅适用于第一个冲压文件。在处理第一个文件时,我只需填充数组arr,这样键就是行数,值是第一个字段,而且由于我不想要其他任何东西,所以我指示GNU AWK转到next行。根据行数处理进一步打印的文件时,使用与行数相同的键从数组arr中检索颜色。
(用GNU Awk 4.0.0测试)
发布于 2022-11-05 07:20:19
$ paste -d' ' file-A file-B
Red Car
Green Bus
Blue Van
Yellow Bike但是,如果您坚持使用bash变量:
$ paste file-A file-B | while read -r a b; do printf '%s %s\n' "$a" "$b"; done
Red Car
Green Bus
Blue Van
Yellow Bike或者:
$ mapfile -t a < file-A
$ mapfile -t b < file-B
$ for (( i=0; i<${#a[@]}; i++ )); do printf '%s %s\n' "${a[i]}" "${b[i]}"; done
Red Car
Green Bus
Blue Van
Yellow Bikehttps://stackoverflow.com/questions/74317970
复制相似问题