相关疑难解决方法(0)

使用awk删除字节顺序标记

awk用于删除BOM的脚本(可能是单线程)怎么样?

规格:

  • 在第一个(NR > 1)之后打印每一行
  • 对于第一行:如果以#FE #FF或开头#FF #FE,则删除它们并打印其余部分

unicode awk byte-order-mark

102
推荐指数
4
解决办法
8万
查看次数

在Vim中将编码和文件编码设置为utf-8

这两个命令有什么区别?

  • set encoding=utf-8
  • set fileencoding=utf-8

当我想使用utf-8时,是否需要设置两者?

另外,我是否需要使用set或设置fileencoding setglobal

vim encoding

89
推荐指数
2
解决办法
11万
查看次数

无法加载私钥.(PEM例程:PEM_read_bio:无起始行:pem_lib.c:648:期望:任何私钥)

我有一个.key文件,它是PEM格式的私钥文件.我没有制作这个文件,但我从某个地方得到了这个.

我希望看到它的MD5哈希与openssl工具,如下面的命令.

openssl rsa -in server.key -modulus -noout
Run Code Online (Sandbox Code Playgroud)

但这会产生以下错误.

unable to load Private Key
13440:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_lib.c:648:Expecting: ANY PRIVATE KEY
Run Code Online (Sandbox Code Playgroud)

这是.key文件的一些asn1parse.

openssl asn1parse -in server.key
0:d=0  hl=4 l= 603 cons: SEQUENCE
4:d=1  hl=2 l=   1 prim: INTEGER           :00
7:d=1  hl=3 l= 129 prim: INTEGER           :C141201603899993919CBAA56985E9C7
C6A2AF713A02F5FE88D38CEFBED9304599689280B84B0AB577A9719CA20DDA1246A894AF397A2C57
EE5A582B036CC367E3667454DCD82DBDBF187C35FE39F61C71B517DDDF576F5471B4EC2E045E0F9D
619F5616C4E832F00CBD0DBF41B4BA3CBC4B4B603AE1FE61965917DA732E0DEF
139:d=1  hl=2 l=   3 prim: INTEGER           :010001
144:d=1  hl=3 l= 128 prim: INTEGER           :1687B9AE67562CEDEBDD7A531B84CDB7
093CE138519B93C34B7F626076FF0A262B16EA71904ACB6251A39307C04ADE202055BA13DD9F1539
6123EE408183361A9BC08B9413FA360EA928E48CC3F52B33ACF2980758F02BA2139F652F30A257C2
2E45D7C25835FC4D22B9ECECC12AB632318D4F47E1EBDAD9781B96BCFF03A2D1

 ...
Run Code Online (Sandbox Code Playgroud)

还有什么我可以尝试的吗?

openssl private-key

65
推荐指数
7
解决办法
18万
查看次数

shell脚本是否对编码和行结尾敏感?

我正在Mac上制作NW.js应用程序,并希望通过双击图标以开发模式运行应用程序.第一步,我正在尝试使我的shell脚本工作.

在Windows上使用VSCode(我想获得时间),我run-nw在项目的根目录创建了一个文件,其中包含:

#!/bin/bash

cd "src"
npm install

cd ..
./tools/nwjs-sdk-v0.17.3-osx-x64/nwjs.app/Contents/MacOS/nwjs "src" &
Run Code Online (Sandbox Code Playgroud)

但我得到这个输出:

$ sh ./run-nw

: command not found  
: No such file or directory  
: command not found  
: No such file or directory  

Usage: npm <command>

where <command> is one of:  (snip commands list)

(snip npm help)

npm@3.10.3 /usr/local/lib/node_modules/npm  
: command not found  
: No such file or directory  
: command not found
Run Code Online (Sandbox Code Playgroud)

我真的不明白:

  • 似乎它需要空行作为命令.在我的编辑器(VSCode)我试图替换\r\n\n(以防\r造成了问题),但它改变不了什么.
  • 它似乎找不到文件夹(有或没有dirname指令),或者它可能不知道cd …

bash shell sh

37
推荐指数
4
解决办法
1万
查看次数

iconv任何编码为UTF-8

我试图将iconv指向一个目录,所有文件都将转换为UTF-8,无论当前编码如何

我正在使用此脚本,但您必须指定要进行的编码.如何让它自动检测当前编码?

dir_iconv.sh

#!/bin/bash

ICONVBIN='/usr/bin/iconv' # path to iconv binary

if [ $# -lt 3 ]
then
    echo "$0 dir from_charset to_charset"
    exit
fi

for f in $1/*
do
    if test -f $f
    then
        echo -e "\nConverting $f"
        /bin/mv $f $f.old
        $ICONVBIN -f $2 -t $3 $f.old > $f
    else
        echo -e "\nSkipping $f - not a regular file";
    fi
done
Run Code Online (Sandbox Code Playgroud)

终点线

sudo convert/dir_iconv.sh convert/books CURRENT_ENCODING utf8
Run Code Online (Sandbox Code Playgroud)

linux ubuntu encoding utf-8 iconv

19
推荐指数
4
解决办法
4万
查看次数

删除文件编码标记,但保留其编码

我有一个使用UTF-8(无BOM)编码的文件。文件正在Windows站点上创建,并通过SFTP传输到Linux服务器。使用cat -e它,我得到这样的东西:

cat -e file.txt

M-oM-;M-?test13;hbana0Kw;$
lala;LjgX$
Run Code Online (Sandbox Code Playgroud)

现在,我知道这M-oM-;M-?代表UTF-8(无BOM)。有没有一种方法可以将其从文件中删除,但不预先编码?

linux shell utf-8

5
推荐指数
2
解决办法
957
查看次数

标签 统计

encoding ×2

linux ×2

shell ×2

utf-8 ×2

awk ×1

bash ×1

byte-order-mark ×1

iconv ×1

openssl ×1

private-key ×1

sh ×1

ubuntu ×1

unicode ×1

vim ×1