左侧部分数据(在变量中),如:
echo "$lpart"
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55"
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55"
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55"
"2017-07-03 13:39:5", "-37dB", "7c:e9:d3:f1:61:55"
正确的部分数据(在变量中),如:
echo "$rpart"
"qhy2"
"qhy2"
"Apple Setup"
"qhy2"
我想按列合并2个数据,它是:
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55" "qhy2"
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55" "qhy2"
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55" "Apple Setup"
"2017-07-03 13:39:5", "-37dB", "7c:e9:d3:f1:61:55" "qhy2"
此请求与帖子how to combine two variable column-by-column in bash相同,但我的busybox不支持粘贴命令。 我试过了这些命令:
awk 'BEGIN{print ARGV[1], ARGV[2]}' "$lpart" "$rpart"
awk -v awk_lpart="$lpart" -v awk_rpart="$rpart" 'BEGIN{print awk_lpart awk_rpart }'
那些将按行合并..
你能否告诉我如何才能达到要求?谢谢。
答案 0 :(得分:1)
使用awk你可以这样做:
awk 'NR==FNR {a[FNR]=$1; next} {print $0, a[FNR]}' <(echo "$rpart") <(echo "$lpart")
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55" "qhy2"
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55" "qhy2"
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55" "Apple
"2017-07-03 13:39:5", "-37dB", "7c:e9:d3:f1:61:55" "qhy2"
答案 1 :(得分:1)
以您的一次尝试为基础:
awk -v awk_lpart="$lpart" -v awk_rpart="$rpart" 'BEGIN{
split(awk_lpart,lp,/\n/)
split(awk_rpart,rp,/\n/)
for (i=1; i in lp; i++) {
print lp[i], rp[i]
}
}'
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55" "qhy2"
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55" "qhy2"
"2017-07-03 13:39:5", "-39dB", "7c:e9:d3:f1:61:55" "Apple Setup"
"2017-07-03 13:39:5", "-37dB", "7c:e9:d3:f1:61:55" "qhy2"
这适用于任何UNIX机器上任何shell中的任何awk。