簡體   English   中英

如何使用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

所以我需要用 3 替換 100

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/\1$(wc -l < file1.txt)/" file2.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM