如何在shell脚本中将第一列打印为字符串?

时间:2016-06-04 03:38:04

标签: shell

我有1个文件(称为字母),如下所示:

a i
d u
b k

该程序采用一个必需参数,即文件名(letters.key)。它需要使用读取此文件,同时读取循环并将第1列中的所有内容输出为字符串,然后输出空格,然后将第2列中的所有内容输出为字符串。 因此,对于上面的示例,它应该打印: adb iuk

到目前为止,这是我的代码:

if [ $# -eq 1 ]; then
        // need to figure out this part
else
        echo "Incorrect number of arguments passed"
        exit 1
fi

2 个答案:

答案 0 :(得分:-1)

运行awk脚本

awk 'BEGIN{ORS=" "}{for(i=1;i<=NF;i++){a[i]=a[i]$i}} END{for(i in a){print a[i]} print "\n"}' letters.key

为了便于阅读

awk '
BEGIN{ORS=" "}
{
  for(i=1;i<=NF;i++){
    a[i]=a[i]$i
  }
} 
END{
  for(i in a){
    print a[i]
  };
 print "\n"}
' < letters.key

答案 1 :(得分:-1)

的bash

col=()
while read a b; do
    col[1]+=$a
    col[2]+=$b
done < letters
echo "${col[*]}"