打印特定列

时间:2015-06-18 16:01:48

标签: bash awk sed

我想以前我没有解释清楚。我有以下空格分隔的文件。我只想打印column1和3 info

/ fs1 owner1

/ fs2 app2 owner2

/ fs3 app3 owner3

cat file-name | awk'{print $ 1“”$ 3}“ 只会打印

/ fs1
/ fs2 owner2
/ fs3 owner3

由于第一行上的空格分隔,awk将owner1作为第二列,第3列为空。我正在寻找的是打印文件

/ fs1 owner1
/ fs2 owner2
/ fs3 owner3

3 个答案:

答案 0 :(得分:0)

您必须使用awk将分隔符设置为“\ t”,如下所示 之后,您可以打印所需的列,如下所示: awk -F"\t" '{print $1" "$3" "$4}'

答案 1 :(得分:0)

在这种特殊情况下,您还可以使用awk '{print $1, $NF}'打印第一列和最后一列。

答案 2 :(得分:0)

如果字段之间有固定数量的空格,您可以:

cut -c 1-4,15-25 filename | sed -r 's/ +/ /'

这将删除第5-14列中的中间文本,然后在第一个和最后一个字段之间放置一个空格。