如何使用bash将文件中的行数写入单独文件中的行

如何使用bash将文件中的行数写入单独文件中的行,bash,sed,pipe,wc,Bash,Sed,Pipe,Wc,我想计算一个文件中的行数,然后用行数覆盖第二个文件中的数字。例如 file1.txt Apples Oranges Bananas num_lines_in_file_1 = 100 num_lines_in_file_1 = 3 file2.txt Apples Oranges Bananas num_lines_in_file_1 = 100 num_lines_in_file_1 = 3 所以我需要把100换成3 file2.txt Apples Oranges Bananas

我想计算一个文件中的行数,然后用行数覆盖第二个文件中的数字。例如

file1.txt

Apples
Oranges
Bananas
num_lines_in_file_1 = 100
num_lines_in_file_1 = 3
file2.txt

Apples
Oranges
Bananas
num_lines_in_file_1 = 100
num_lines_in_file_1 = 3
所以我需要把100换成3

file2.txt

Apples
Oranges
Bananas
num_lines_in_file_1 = 100
num_lines_in_file_1 = 3
我看到
wc-lfile1.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-i“s/num\u lines\u in_file\u 1=100/num\u lines\u in_file\u 1=$(wc-l
您也不需要重复整个短语,sed可以帮您记住:

sed -i "s/\(num_lines_in_file_1 = \)100/\1$(wc -l < file1.txt)/" file2.txt
sed-i“s/\(num\u lines\u in\u file\u 1=\)100/\1$(wc-l
使用命令替换:

sed -i "s/num_lines_in_file_1 = 100/num_lines_in_file_1 = $(wc -l < file1.txt)/" file2.txt
sed-i“s/num\u lines\u in_file\u 1=100/num\u lines\u in_file\u 1=$(wc-l
您也不需要重复整个短语,sed可以帮您记住:

sed -i "s/\(num_lines_in_file_1 = \)100/\1$(wc -l < file1.txt)/" file2.txt
sed-i“s/\(num\u lines\u in\u file\u 1=\)100/\1$(wc-l