我正在编写一个小的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 按下的控制键(命令中不包含<
和>
字符。