如何将字数作为字符串插入文件中?

How to insert word count as a string in a file?

我试图在名为 text.txt 的文件的开头插入一行,以告知文本中有多少行。喜欢:

35764
43587
12905
13944

使用该命令后,它应该将文件重定向到 textwc.txt,如

4

35764
43587
12905
13944

我试图将一个变量定义为 wc -l 并试图将其调回 awk,但我没有取得任何成就。有什么想法吗?

第一个解决方案: 能否请您尝试以下 awk.

awk -v lines="$(wc -l < Input_file)" 'FNR==1{print lines} 1' Input_file


第二个解决方案:阅读2次Input_file尝试以下。

awk 'FNR==NR{count++;next} FNR==1{print count} 1' Input_file Input_file


第三个解决方案: 使用 tac + awk 解决方案。

tac Input_file | awk '1;END{print FNR}' | tac


第 4 种解决方案: 如果您的 Input_file 不是很大,请尝试以下操作。

awk '{val=(val?val ORS:"")[=13=]}  END{print FNR ORS val}' Input_file

你可以这样:

sed "1i $(wc -l < text.txt)" text.txt

输出:

4
35764
43587
12905
13944

计算行数,然后使用 sed 插入到第一行 如果你想在#count 之后有一个空行,编辑插入的文本

sed "1i $(wc -l < text.txt)\n" text.txt