Bash 如何在文件中打印unix中第一行的第一个字和最后一行的最后一个字

Bash 如何在文件中打印unix中第一行的第一个字和最后一行的最后一个字,bash,shell,unix,Bash,Shell,Unix,假设有一个文件file1.c,它有100行。我需要打印该文件的第一个字和最后一个字。第一个字:head-1file1.c | cut-d”“-f1 最后一句话:tail-1file1.c | rev | cut-d”“-f1 | rev head-1打印第一行 -d在本例中代表delimeter”(空格) -f 1第一个字段 tail-1打印最后一行 rev反转输入-在这种情况下,首先rev导致该行被“镜像”,因此最后一个字段现在是第一个,因此我们可以剪切它。第二个rev反转/镜像所需字段,使其

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

第一个字:
head-1file1.c | cut-d”“-f1

最后一句话:
tail-1file1.c | rev | cut-d”“-f1 | rev

head-1
打印第一行

-d
在本例中代表delimeter
(空格)

-f 1
第一个字段

tail-1
打印最后一行


rev
反转输入-在这种情况下,首先
rev
导致该行被“镜像”,因此最后一个字段现在是第一个,因此我们可以
剪切它。第二个
rev
反转/镜像所需字段,使其可读第一个单词:
head-1 file1.c | cut-d”“-f 1

awk 'NR==1{print $1} END{print $NF}' file1.c
最后一句话:
tail-1file1.c | rev | cut-d”“-f1 | rev

head-1
打印第一行

-d
在本例中代表delimeter
(空格)

-f 1
第一个字段

tail-1
打印最后一行

rev
反转输入-在这种情况下,首先
rev
导致该行被“镜像”,因此最后一个字段现在是第一个,因此我们可以
剪切它。第二次
rev
反转/镜像所需字段,使其可读

awk 'NR==1{print $1} END{print $NF}' file1.c
NR==1
:表示行号应为1。
END{}
:此块将在文件的最后一行执行。
$1
:第一列
$NF
:最后一列。希望能有帮助

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

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

tr -d "\n" < file1.c| sed 's/ .* / /'
tr-d“\n”
当文件以空格开头或结尾时,这将不起作用。 你可以用更复杂的

tr -d "\n" < file1.c| sed -r 's/[ ]*([^ ]+).*([^ ]+)/\1 \2/'
tr-d“\n”
将文件转换为一行,并删除第一个和最后一个空格之间的所有内容:

tr -d "\n" < file1.c| sed 's/ .* / /'
tr-d“\n”
当文件以空格开头或结尾时,这将不起作用。 你可以用更复杂的

tr -d "\n" < file1.c| sed -r 's/[ ]*([^ ]+).*([^ ]+)/\1 \2/'
tr-d“\n”
awk
可能会很尴尬,对于“预算”方法,您可能需要检查
头部
尾部
切割
命令。@PS.请不要在评论中回答。这绕过了质量控制,因为人们不能同时对评论进行上下投票。@CJDennis理解。欢迎来到Stack Overflow!请说明到目前为止您是如何尝试解决问题的,以便您能够得到指导。请同时阅读。
awk
可能会很尴尬,对于“预算”方法,您可能需要检查
头部
尾部
切割
命令。@PS.请不要在评论中回答。这绕过了质量控制,因为人们不能同时对评论进行上下投票。@CJDennis理解。欢迎来到Stack Overflow!请说明到目前为止您是如何尝试解决问题的,以便您能够得到指导。请同时阅读。虽然这个答案是正确的,但解释它将大大提高它的质量。解释
rev
的用法。虽然这个答案是正确的,但解释它将大大提高它的质量。解释
rev
用法。
NR
-当前记录的编号(等同于行号
:)
NR
-当前记录的编号(等同于行号
:)