使用 awk 命令计算没有空行的字段
count the fields without empty line using awk command
safwanpaloli@hello:~/linx$ cat 1.txt
Name age address email
safwan 26 india safwanp@gmail.com
rashi 24 India rashi@gmail.com
shanif 25 India shanif@gmail.com
pradeep 25 India pradeep@gmil.com
safwanpaloli@hello:~/linx$
显示所有文件内容的行号
awk '{print NR,[=13=]}'
输出是
1
2 Name age address email
3 safwan 26 india safwanp@gmail.com
4 rashi 24 India rashi@gmail.com
5 shanif 25 India shanif@gmail.com
6 pradeep 25 India pradeep@gmil.com
预期结果是
1 Name age address email
2 safwan 26 india safwanp@gmail.com
3 rashi 24 India rashi@gmail.com
4 shanif 25 India shanif@gmail.com
5 pradeep 25 India pradeep@gmil.com
您可以检查 NF
的值是否大于 0 并使用计数器变量:
$ awk 'NF{print ++c,[=10=]}' file
输出:
1 Name age address email
2 safwan 26 india safwanp@gmail.com
...
如果第一行真的是空的(即里面没有 space),你可以使用 nl file
。它将打印空行但不对其编号。
以上 nl
awk 功能(空行输出但未编号):
$ awk '{print (NF?++c:""),[=12=]}' file
输出:
1 Name age address email
2 safwan 26 india safwanp@gmail.com
3 rashi 24 India rashi@gmail.com
...
这将打印非空行及其计数。要计算在内,该行必须包含至少一个非白色space字符。
awk '!="" {print ++c,[=10=]}'
这很相似,但只跳过完全个空行。例如。仅包含一个 space 的行仍会被计算在内。
awk '/./ {print ++c,[=11=]}'
您还可以使用以下 greps 之一删除空行:
grep '[^[:space:]]'
grep .
safwanpaloli@hello:~/linx$ cat 1.txt
Name age address email
safwan 26 india safwanp@gmail.com
rashi 24 India rashi@gmail.com
shanif 25 India shanif@gmail.com
pradeep 25 India pradeep@gmil.com
safwanpaloli@hello:~/linx$
显示所有文件内容的行号
awk '{print NR,[=13=]}'
输出是
1
2 Name age address email
3 safwan 26 india safwanp@gmail.com
4 rashi 24 India rashi@gmail.com
5 shanif 25 India shanif@gmail.com
6 pradeep 25 India pradeep@gmil.com
预期结果是
1 Name age address email
2 safwan 26 india safwanp@gmail.com
3 rashi 24 India rashi@gmail.com
4 shanif 25 India shanif@gmail.com
5 pradeep 25 India pradeep@gmil.com
您可以检查 NF
的值是否大于 0 并使用计数器变量:
$ awk 'NF{print ++c,[=10=]}' file
输出:
1 Name age address email
2 safwan 26 india safwanp@gmail.com
...
如果第一行真的是空的(即里面没有 space),你可以使用 nl file
。它将打印空行但不对其编号。
以上 nl
awk 功能(空行输出但未编号):
$ awk '{print (NF?++c:""),[=12=]}' file
输出:
1 Name age address email
2 safwan 26 india safwanp@gmail.com
3 rashi 24 India rashi@gmail.com
...
这将打印非空行及其计数。要计算在内,该行必须包含至少一个非白色space字符。
awk '!="" {print ++c,[=10=]}'
这很相似,但只跳过完全个空行。例如。仅包含一个 space 的行仍会被计算在内。
awk '/./ {print ++c,[=11=]}'
您还可以使用以下 greps 之一删除空行:
grep '[^[:space:]]'
grep .