0

我想制作一个批处理文件,删除所有空白行并将文件中的行排序为常规的不区分大小写的排序。

到目前为止,我得到了这个:

@echo off
IF [%1]==[] goto BAR_PAR

IF EXIST %1 (
    egrep -v "^[[:space:]]*$" %1 | sort > xxx
    mv -f xxx %1

) else (
    echo File doesn't exist
)
goto END

:BAR_PAR
echo No Parameter Passed

:END

但这搞砸了我的编码 UCS-2 Little Endian 的文件。

有没有办法盲目处理所有编码?如果不是,我应该怎么做才能使这个 UCS-2 Little Endian 兼容?

更新 忘了提到我使用的是 Windows,但使用的是 Cygwin,所以我有通用的 linux shell 命令,如 grep、sed 等......

4

2 回答 2

1

Cygwinsort -f将通过将所有字符转换为大写来对文件进行不区分大小写的排序。

Cygwiniconv从一个字符集转换为另一个字符集。

于 2013-02-13T12:38:20.820 回答
0
grep -e '[[:graph:]]' foo.txt | sort -f

简而言之,该命令查找任何至少有一个可见字符的行。因此,排除只有空格和制表符的行。

出于某种原因,我正在使用的文件没有响应我能想到的使用 '^' 和 '$' 的任何组合。

于 2014-03-04T15:18:23.660 回答