我正在尝试使用粘贴在两列中垂直列出数据。
假装我在文本文件中有以下数据
Bob:75:Male
Mary:85:Female
Troy:12:Male
我提取所有名称并将其存储为变量:
NAMES=$(cat $FILE | awk -F: '{print $1}')
我也为年龄做同样的事情
AGE=$(cat $FILE | awk -F: '{print $2}')
我现在想将它们粘贴在一起,但是粘贴要求您使用带有文本文件的文件。为简单起见,我宁愿不创建额外的文件,那么如何将变量输入到粘贴中以列出行和列中的数据?
感谢任何帮助,谢谢:)
编辑:只是为了澄清我已经愚弄了这个问题,我正在对数据做其他事情所以我正在寻找的解决方案不仅仅是使用
awk -F: '{print $1 $2}'
我需要输入以使用awk语句中的变量进行粘贴。
编辑#2:要回答评论,它应该是
Bob 75
Mary 85
保守党12
答案 0 :(得分:0)
您可以将paste
与流程替换结合使用:
#!/bin/bash
# read value from `$file` in 2 arrays
names=()
age=()
while read -r n a; do
names+=($n)
age+=($a)
done < <(awk -F: '{print $1, $2}' "$file")
# paste 2 arrays together
paste <(printf "%s\n" "${names[@]}") <(printf "%s\n" "${age[@]}")
Bob 75
Mary 85
Troy 12