Bash 如何在文件中打印unix中第一行的第一个字和最后一行的最后一个字
假设有一个文件file1.c,它有100行。我需要打印该文件的第一个字和最后一个字。第一个字: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反转/镜像所需字段,使其
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
-当前记录的编号(等同于行号:)