Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encoding 批处理文件,用于删除所有编码的空行并对文件进行排序(不区分大小写)_Encoding_Batch File - Fatal编程技术网

Encoding 批处理文件,用于删除所有编码的空行并对文件进行排序(不区分大小写)

Encoding 批处理文件,用于删除所有编码的空行并对文件进行排序(不区分大小写),encoding,batch-file,Encoding,Batch File,我想创建一个批处理文件,删除所有空行,并对文件中的行进行常规的不区分大小写排序 到目前为止,我得到了这个: @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 Pas

我想创建一个批处理文件,删除所有空行,并对文件中的行进行常规的不区分大小写排序

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

@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等。

Cygwin
sort-f
将通过将所有字符转换为大写来对文件大小写进行不敏感的排序

Cygwin
iconv
将一个字符集转换为另一个字符集

grep -e '[[:graph:]]' foo.txt | sort -f
简而言之,此命令查找至少有一个可见字符的任何行。因此,仅包含空格和制表符的行被排除在外

出于某种原因,我使用的文件没有响应我可以想到的使用“^”和“$”的任何组合