如何使用 bash 将文件中的行数写入单独文件中的行
How to write the quantity of lines in a file to a line in a seperate file using bash
我想计算一个文件中的行数,然后用行数覆盖第二个文件中的数字。例如
file1.txt
Apples
Oranges
Bananas
file2.txt
num_lines_in_file_1 = 100
所以我需要将 100 替换为 3
file2.txt
num_lines_in_file_1 = 3
我看到wc -l file1.txt
命令可以告诉我行数。我知道我可以使用 sed
替换一行,例如
sed -i "s/num_lines_in_file_1 = 100/num_lines_in_file_1 = 3/" file2.txt
但是我不明白你会如何管道 | wc命令进入sed?它会发生在正则表达式中吗?
使用命令替换:
sed -i "s/num_lines_in_file_1 = 100/num_lines_in_file_1 = $(wc -l < file1.txt)/" file2.txt
你也不需要重复整个短语,sed 可以帮你记住:
sed -i "s/\(num_lines_in_file_1 = \)100/$(wc -l < file1.txt)/" file2.txt
我想计算一个文件中的行数,然后用行数覆盖第二个文件中的数字。例如
file1.txt
Apples
Oranges
Bananas
file2.txt
num_lines_in_file_1 = 100
所以我需要将 100 替换为 3
file2.txt
num_lines_in_file_1 = 3
我看到wc -l file1.txt
命令可以告诉我行数。我知道我可以使用 sed
替换一行,例如
sed -i "s/num_lines_in_file_1 = 100/num_lines_in_file_1 = 3/" file2.txt
但是我不明白你会如何管道 | wc命令进入sed?它会发生在正则表达式中吗?
使用命令替换:
sed -i "s/num_lines_in_file_1 = 100/num_lines_in_file_1 = $(wc -l < file1.txt)/" file2.txt
你也不需要重复整个短语,sed 可以帮你记住:
sed -i "s/\(num_lines_in_file_1 = \)100/$(wc -l < file1.txt)/" file2.txt