如何在文件中的UNIX中打印第一行的最后一个单词和最后一行的最后一个单词

时间:2018-08-01 11:29:33

标签: bash shell unix

假设有一个文件file1.c,它有100行。我需要打印该文件的第一个单词和最后一个单词。

3 个答案:

答案 0 :(得分:2)

第一个单词:head -1 file1.c | cut -d" " -f 1

姓:tail -1 file1.c | rev | cut -d" " -f 1 | rev

head -1打印第一行

-d在此情况下代表分度符" "(空格)

-f 1第一个字段

tail -1打印最后一行

rev反转输入-在这种情况下,第一个rev导致该行被“镜像”,因此最后一个字段现在位于第一个,因此我们可以cut进行输入。第二rev反向/镜像返回所需的字段,以便其可读

答案 1 :(得分:1)

awk 'NR==1{print $1} END{print $NF}' file1.c

NR==1:表示行号应为1。 END{}:此块将在文件的最后一行执行。 $1:第一列 $NF:最后一列。希望能帮助到你。

答案 2 :(得分:0)

将文件转换为一行,并删除第一个和最后一个空格之间的所有内容:

tr -d "\n" < file1.c| sed 's/ .* / /'

当文件以空格开头或结尾时,此功能将无效。 您可以通过更复杂的方式解决此问题

tr -d "\n" < file1.c| sed -r 's/[ ]*([^ ]+).*([^ ]+)/\1 \2/'