更改文本文件的编码(外壳存档或古董内核文本的脚本为 ASCII 文本,带有 CRLF、LF 行终止符)



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

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

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

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

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

有没有办法将 FILEA 转换为 ASCII 以避免在通过 UNIX 进行比较时出现此问题?或者在UNIX之外也对我有用。

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

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

其中<CTRL-V>是用 V 按下的控制键(命令中不包含<>字符。

最新更新