簡體   English   中英

bash腳本:從每行中刪除前綴后如何區分兩個文件?

[英]bash script: how to diff two files after stripping prefix from each line?

我有兩個日志文件。 每行的格式如下:

<timestamp><rest of line>

具有以下時間戳格式:

2015-10-06 04:35:55.909 REST OF LINE

我需要以時間戳為模來區分兩個文件,即,我需要比較兩個文件中沒有時間戳的行。 我應該使用哪些Linux工具?

我在運行bash的RedHat 6機器上運行,如果有所作為

您不需要創建臨時文件:使用bash 進程替換

diff <(cut -d" " -f3- log1) <(cut -d" " -f3- log2)

我將首先生成兩個文件,以與使用cut命令刪除的標頭進行比較,如下所示:

cut -f 3- -d " " file_to_compare > cut_file

然后使用diff命令。

您可以使用“剪切”

cat file1 | cut -b23- > file1cut
cat file2 | cut -b23- > file2cut

diff file1 file2

要打印除前兩個字段以外的所有字段,可以使用awk實用程序(和編程語言):

awk '{$1=$2=""; print $0}' file1 > newfile1

awk '{$1=$2=""; print $0}' file2 > newfile2

diff newfile1 newfile2

好吧,當您在尋找工具時,為什么不只使用Kompare。 它非常強大且眾所周知,大多數使用Linux的開發人員都在使用它。

https://www.kde.org/applications/development/kompare/ https://docs.kde.org/trunk5/en/kdesdk/kompare/using.html

Kompare是一個GUI前端程序,可以查看和合並源文件之間的差異。 它可用於比較文件或文件夾內容上的差異,並且支持多種diff格式,並提供許多選項以自定義顯示的信息級別。

暫無
暫無

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

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