假设有一个文件file1.c,它有100行。我需要打印该文件的第一个单词和最后一个单词。
答案 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/'