1

我正在编写一个小 bash 脚本来查找 FILEB 中 FILEA 的第一行,如果匹配,则返回带有文件名的文本。

问题是当我从 FILEA 中提取文本,然后将其与一个简单的 == 作为 if 条件进行比较时,它返回的结果不同。

我已将问题缩小到我正在使用的 2 个文件的编码不同

(FILEA=shell 存档或古董内核文本的脚本)

(FILEB=ASCII 文本,带有 CRLF、LF 行终止符)

在通过 UNIX 进行比较时,有没有办法将 FILEA 转换为 ASCII 以避免这个问题?或者在 UNIX 之外也可以为我工作。

4

1 回答 1

1

Unix 使用单个字符作为行终止符。如果要将带有 CRLF 的文件转换为单字符终止,可以执行以下操作:

sed -e 's/<CTRL-V><CTRL_M>//' filename

用 V 按下的 Control 键在哪里<CTRL-V>(命令中不包括<>字符。

于 2013-09-12T03:01:51.000 回答