我是Linux SO和bash命令的新手,我认为有更多经验的人可以帮助我.我想比较2个不同的文本文件和执行日志,但有些行(不是全部)以时间'标记开头,如下所示:
12345 ps line 1 content
23456 ps line 2 content
line 3 content
345 ps line 4 content
Run Code Online (Sandbox Code Playgroud)
这些令牌在每个日志中都有不同的值,但是,在那个比较中,我不关心它们,我只想比较行内容并忽略它们.我可以使用'sed'命令生成没有该令牌的新文件,然后使用它们,但我假装反复这样做,如果我只使用一个命令或一个sh文件,可以节省一些时间.我试过用'sed'和'diff'组合,但没有成功.有人可以帮助我吗?
您可以使用以下sed one liner从文件开头删除数字:
sed 's/^[0-9]* ps//g' file1
Run Code Online (Sandbox Code Playgroud)
要区分两个这样的文件(更少的时间戳),您可以使用进程替换.
diff <(sed 's/^[0-9]* ps//g' file1) <(sed 's/^[0-9]* ps//g' file2)
Run Code Online (Sandbox Code Playgroud)