unix 通过变量表示tail

kr98yfug  于 2023-01-25  发布在  Unix
关注(0)|答案(2)|浏览(125)

所以我有一大块格式化文本,我基本上需要使用awk从其中取出某些列,我做的第一件事是去掉前10行(标题信息,与我需要的信息无关)。
接下来,我将文件中的总行数减去10,得到了尾部。

import=$HOME/$1

if [ -f "$import" ]
 then
        #file exists
        echo "File Exists."
        totalLines=`wc -l < $import`

        linesMinus=`expr $totalLines - 10`
        tail -n $linesMinus $import
        headless=`tail -n $linesMinus $import`




else
        #file does not exist
        echo "File does not exist."
fi

现在我需要将这个尾部保存到一个变量中(或者甚至是单独的文件),以便访问列。
问题就出在这里:

headless=`tail -n $linesMinus $import`

当我将代码保存到这个变量中,然后尝试将其回送时,它都是未格式化的,而且我无法区分要在其上使用awk的列。
我怎样才能保存这个文件的尾部而不影响格式?

plicqrtu

plicqrtu1#

只需使用Awk。它可以同时在一个程序中完成你需要的一切。
例如,跳过前10行,然后打印第二、第三和第四列(用空格分隔),用于INPUT_FILE的所有剩余行:

awk 'NR <= 10 {next;}
     {print $2 " " $3 " " $4;}' INPUT_FILE
wr98u20j

wr98u20j2#

我想明白了,当我问这个问题的时候,我已经回答了我自己的问题。我所做的只是将tail命令重定向到主目录中的一个文件,然后我就可以cat那个文件了。不过要记住在最后删除它!

相关问题