linux 字符转换,把字符串转化为数字

各位老铁们好,相信很多人对linux 字符转换都不是特别的了解,因此呢,今天就来为大家分享下关于linux 字符转换以及把字符串转化为数字的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

Linux系统中tr命令删除和替换文本字符的基本用法

通过使用 tr,您可以非常容易地实现 sed的许多最基本功能。您可以将 tr看作为 sed的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr所能够做的。

tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。

带有最常用选项的tr命令格式为:

代码如下:

tr-c-d-s ["string1_to_translate_from"] ["string2_to_translate_to"] input-file

这里:

-c用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。

-d删除字符串1中所有输入字符。

-s删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。

input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。

字符范围

指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。

[a-z] a-z内的字符组成的字符串。

[A-Z] A-Z内的字符组成的字符串。

[0-9]数字串。

octal一个三位的八进制数,对应有效的ASCII字符。

[O*n]表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。

tr中特定控制字符的不同表达方式

速记符含义八进制方式

a Ctrl-G铃声07

b Ctrl-H退格符10

f Ctrl-L走行换页14

n Ctrl-J新行12

r Ctrl-M回车15

t Ctrl-I tab键11

v Ctrl-X 30

表达字符串的特殊序列

String1和 String2变量中所包含的字符串可以使用以下的约定来表示:

如果某个字符在 String1中被指定过多次,则该字符就被转换成 String2中为与 String1中最后出现的字符相对应的字符。

如果由 String1和 String2指定的字符串长度不相同,则 tr命令就会忽略较长一个字符串中的多余字符。

标志

退出状态

该命令返回以下出口值:

实例:

1、将文件file中出现的"abc"替换为"xyz"

复制代码

代码如下:

# cat file| tr"abc""xyz" new_file

【注意】这里,凡是在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不是将字符串"abc"替换为字符串"xyz"。

2、使用tr命令“统一”字母大小写

(小写--大写)

代码如下:

# cat file| tr [a-z] [A-Z] new_file

(大写--小写)

代码如下:

# cat file| tr [A-Z] [a-z] new_file

3、把文件中的数字0-9替换为a-j

代码如下:

# cat file| tr [0-9] [a-j] new_file

4、删除文件file中出现的"Snail"字符

代码如下:

# cat file| tr-d"Snail" new_file

【注意】这里,凡是在file文件中出现的'S','n','a','i','l'字符都会被删除!而不是紧紧删除出现的"Snail”字符串。

5、删除文件file中出现的换行'n'、制表't'字符

代码如下:

# cat file| tr-d"nt" new_file

不可见字符都得用转义字符来表示的,这个都是统一的。

6、删除“连续着的”重复字母,只保留第一个

代码如下:

# cat file| tr-s [a-zA-Z] new_file

7、删除空行

代码如下:

# cat file| tr-s"n" new_file

8、删除Windows文件“造成”的'^M'字符

代码如下:

# cat file| tr-d"r" new_file

或者

代码如下:

# cat file| tr-s"r""n" new_file

【注意】这里-s后面是两个参数"r"和"n",用后者替换前者

9、用空格符40替换制表符11

代码如下:

# cat file| tr-s"11""40" new_file

10、把路径变量中的冒号":",替换成换行符"n"

代码如下:

# echo$PATH| tr-s":""n"

11、若要将大括号转换为小括号,请输入:

代码如下:

tr'{}''()' textfile newfile

这便将每个{(左大括号)转换成((左小括号),并将每个}(右大括号)转换成)(右小括号)。所有其它的字符都保持不变。

12、若要将大括号转换成方括号,请输入:

代码如下:

tr'{}''[]' textfile newfile

这便将每个{(左大括号)转换成 [(左方括号),并将每个}(右大括号)转换成 ](右方括号)。左方括号必须与一个""(反斜扛)转义字符一起输入。

13、若要将小写字符转换成大写,请输入:

代码如下:

tr'a-z''A-Z' textfile newfile

14、若要创建一个文件中的单词列表,请输入:

代码如下:

tr-cs'[:lower:][:upper:]''[n*]' textfile newfile

这便将每一序列的字符(除大、小写字母外)都转换成单个换行符。*(星号)可以使 tr命令重复换行符足够多次以使第二个字符串与第一个字符串一样长。

15、若要从某个文件中删除所有空字符,请输入:

代码如下:

tr-d'' textfile newfile

16、若要用单独的换行替换每一序列的一个或多个换行,请输入:

代码如下:

tr-s'n' textfile newfile

代码如下:

tr-s'12' textfile newfile

17、若要以“?”(问号)替换每个非打印字符(有效控制字符除外),请输入:

代码如下:

tr-c'[:print:][:cntrl:]''[?*]' textfile newfile

这便对不同语言环境中创建的文件进行扫描,以查找当前语言环境下不能打印的字符。

18、要以单个“#”字符替换字符类中的每个字符序列,请输入:

代码如下:

tr-s'[:space:]''[#*]'

如何将phpinfo字符串类型转换

php中iconv、mb_convert_encoding函数字符编码转换详解如下:

iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库。

用法如下:

$string="亲爱的朋友欢迎访问博客,希望给您带来一点点的帮助!";

iconv("utf8","gbk",$string)//将字符串string编码由utf8转变成gbk;

扩展如下:

echo[MathProcessingError]str=′好,欢迎访问博客,该博客记录一个程序员的成长过程!′;echo′<br/>′;echoiconv(′GB2312′,′UTF−8′,str);//将字符串的编码从GB2312转到UTF-8

echo'<br/>';

echoiconv_substr([MathProcessingError]str,1,1,′UTF−8′);//按字符个数截取而非字节printr(iconvgetencoding());//得到当前页面编码信息echoiconvstrlen(str,'UTF-8');//得到设定编码的字符串长度

//也有这样用的

[MathProcessingError]content=iconv("UTF−8","gbk//TRANSLIT",content);

备注:

1、iconv不是php的默认函数,也是默认安装的模块。需要安装才能用的。

如果是windows2000+php,你可以修改php.ini文件,将extension=php_iconv.dll前的";"去掉,同时你要copy你的原php安装文件下的iconv.dll到你的winnt/system32下(如果你的dll指向的是这个目录,我本地的没有操作这一步)

在linux环境下,用静态安装的方式,在configure时加多一项--with-iconv就可以了,phpinfo看得到iconv的项。(Linux7.3+Apache4.06+php4.3.2);

到此php中的iconv介绍完毕

2、用iconv函数把抓取来过的utf-8编码的页面转成gb2312,发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。原因是这样的:

string iconv( string in_charset, string out_charset, string str)

注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT和//IGNORE,其中//TRANSLIT会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。被截断了,当然就会少了;

可以这样修改iconv("UTF-8","GB2312//IGNORE",$string)会忽略掉不能转化的字符;

附加:

PHP中的mb_convert_encoding与iconv函数介绍

mb_convert_encoding这个函数是用来转换编码的,和iconv函数差不多。

英文一般不会存在编码问题,只有中文数据才会有这个问题。比如用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码。

做一个GBK To UTF-8

<?php

header("content-Type:text/html;charset=Utf-8");//设置字符的编码是utp-8

echomb_convert_encoding("你系我的友仔","UTF-8","GBK");

?>

再做GB2312 To Big5

<?php

header("content-Type:text/html;charset=big5");

echomb_convert_encoding("朋友","big5","GB2312");

?>

不过要使用上面的函数需要安装但是需要先enable mbstring扩展库,道理还是一样的,修改php.ini。

PHP中的另外一个函数iconv也是用来转换字符串编码的,与上函数功能相似。

下面还有一些详细的例子:

iconv—Convertstringtorequestedcharacterencoding

(PHP4>=4.0.5,PHP5)

mb_convert_encoding—Convertcharacterencoding

(PHP4>=4.0.6,PHP5)

用法:

stringmb_convert_encoding(stringstr,stringto_encoding[,mixedfrom_encoding]

需要先enable mbstring扩展库,在 php.ini里将; extension=php_mbstring.dll前面的;

去掉mb_convert_encoding可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;

那为何还要讲解这个 mb_convert_encoding()函数呢?答案如下:

发现iconv在转换字符”—”到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。不管怎么样,这个”—”都无法转换成功,无法输出。

另外mb_convert_encoding没有这个bug.

一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding函数.

* .* 在linux命令中是什么意思

*.*在linux命令中是什么意思?

表示任意几个字符串,其他具体的参考如下:

1.>重定向输出符号。

2.>>重定向输出符号,但有追加的功能。

3. 2>错误重定向输出符号,覆盖原文件内容。

4. 2>>错误重定向输出符号,有文件内容追加的功能。重定向:I/O。Linux Shell环境中支持输入输出重定向,用符号<和>来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt表示将错误信息输出到文件a.txt中。

5.*代表0个或者多个特殊字符

6.?匹配任意一个字符。

7.|管道符号。解释:mand1|mand2,将mand1的输出作为mand2的输入,比如ls-al|less,表示将ls-al的输出作为less的输入,即将la-al的输出分页。管道命令只接受标准输入(standoutput)。

8.&后台进程符。

9.&&l逻辑与符号。用法:命令1&&命令2表示如果命令1执行成功,继续执行命令2。

10.||逻辑或符号。用法:命令1||命令2表示如果命令1执行成功,不执行命令2;但如果命令1执行失败才执行命令2。

&&与||,命令执行是顺序进行的,没有优先级

11.!逻辑非符号。排除指定范围。例:ls a[!0-9]

12.[x-y]表示一定的范围。

13.#注释符;符合替换文字最短的那一个。

14.””双引号表示把它所包含的内容作为普通字符,但` `$ \‘‘几个符号除外。

15.’’单引号表示把它所包含的内容作为普通的字符,无特殊例外。

16.$变量符,提取变量,如echo$HOME,查看变量;正则表达式中表示行首。

17.\转义字符,就是将特殊字符转换成其本来的普通字符的意思。

18.``反单引号,表示它所包含的内容。一般作为嵌入的命令使用,此命令将先执行。

19.;命令分隔符。

20.<重定向输入符。

21.()表示整体执行命令。

22.^反向选择符,例:grep-n'^[^a-zA-Z]' wokao.txt,[]内的叫反向选择符,[]外的则表示定位在行首。查找行首不是英文字母的行。

23..点该表任意字符串

*:代表0或任意;

.:代表任意一个字符,这里应该纯粹指.;

所以*.*应该是带有.的文件,比如A.B,AA.BB,.B,A.,泛指有扩展名的文件。

tcpdump在linux命令中是什么意思

你使用tcpdump抓包的话它会一直监听你需要监听的端口,如果你想退出的话输入:ctrl+ c可以强制退出。

linux命令中su是什么意思

切换到其他系统用户

比如:

su- root

su- mysql

切换回root一般需要输入密码

linux命令中$#各是什么意思

Linux命令中,$一般表示变量,#一般表示注释。

linux命令$-是什么意思

$符号在Linux系统里面用于获取一个变量的值,例如:

#!/bin/bash--------指定编译shell环境为bash

STR="Hello World!"----设置STR的变量值为Hello World!

echo$STR------用echo命令读取STR变量的数值。这里如果不加$,输出结果是STR,加上$,输出结果就是Hello World!。

linux命令中ps-ef是什么意思

以下是man手册-f的注释

does full-format listing. This option can be bined with many other UNIX-style options to add additional columns. It also causes the mand arguments to be printed. When used with-L, the NLWP(number of threads) and LWP(thread ID) columns will be added. See the c option, the format keyword args, and the format keyword m.

ps-ef的执行结果就是打印所有进程的以下内容:

UID PID PPID C STIME TTY TIME CMD

这些命令试试就知道结果了.

linux命令man是什么意思

man是查看一个命令详细说明文档用的。

比如man cp就会显示cp(复制)这个命令的详细说明文件。包括每个参数的意思用法等等。

阅读剩余
THE END