linux有什么命令可以提取指定的字符串1. 例子
提取字符串以下字符串 error: 与 : 之间的子字符串 。并消除空格 。
"src/network/misc/nv_net_udp.c:17: fatal error: nv_net_tools.h: No such file or directory"1
2. 命令
echo "src/network/misc/nv_net_udp.c:17: fatal error: nv_net_tools.h: No such file or directory" | sed -r 's/.*error\:(.*)\:.*/\1/' | sed s/[[:space:]]//g1
该命令涉及 sed 命令的’反向引用’章节, \1 代表 (.*)
3. 结果
nv_net_tools.h1
4. 拓展 : 解决编译错误
leon$make cleanmake all arm-hisiv100nptl-linux-gcc -c -fPIC -Wall -g -ggdb -O0 -DHI3518_CHIP -DLINUX -I./src/include -I./src/include/common -I./src/include/camera -I./src/include/conf -I./src/include/log -I./src/include/network -I./src/include/upnp -I/home/leon/nvc/arm-hisiv100nptl-linux/include src/common/nv_conf.c -o build/objs/hi3518/src/common/nv_conf.o/*省略中间部分*/arm-hisiv100nptl-linux-gcc -c -fPIC -Wall -g -ggdb -O0 -DHI3518_CHIP -DLINUX -I./src/include -I./src/include/common -I./src/include/camera -I./src/include/conf -I./src/include/log -I./src/include/network -I./src/include/upnp -I/home/leon/nvc/arm-hisiv100nptl-linux/include src/network/misc/nv_net_udp.c -o build/objs/hi3518/src/network/misc/nv_net_udp.o
src/network/misc/nv_net_udp.c:17: fatal error: nv_net_tools.h: No such file or directory
compilation terminated.make: *** [build/objs/hi3518/src/network/misc/nv_net_udp.o] Error 112345678
note: 在以上编译过程中我们发现,编译器提示说找不到nv_net_tools.h文件linux命令提取文本,而现实中我们也不需要这个文件的包含linux命令提取文本了,需要删除包含nv_net_tools.h 文件中的该行代码 。
5.字符串提取 (命令行)
目标字符串
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0 12
需要提取 from , to, url , md5, level 等5个关键字后面的内容 。
//提取 from内容echo
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0 |sed "s/.*from:\(.*\)/\1/" |cut -d ',' -f1
//提取 to 内容echo
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0 |sed "s/.*to:\(.*\)/\1/" |cut -d ',' -f1
//提取 url内容echo
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0 |sed "s/.*url:\(.*\)/\1/" |cut -d ',' -f1
//提取 md5 内容echo
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0 |sed "s/.*md5:\(.*\)/\1/" |cut -d ',' -f1
//提取 level 内容echo
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0 |sed "s/.*level:\(.*\)/\1/" |cut -d ',' -f112345678910111213141516
6.字符串提取 (脚本文件)
ret_val="\"from\":\"0804020982\",\"to\":\"0804020998\",\"url\":\"\",\"md5\":\"408d261924e6c271200fdf14d3a230cc\",\"level\":0"
echo ret_val is : [ $ret_val ]from="$(echo $ret_val | sed 's/.*from\"\:\(.*\)/\1/' |cut -d ',' -f1 |sed 's/"//g')"
echo from: $from
to="$(echo $ret_val | sed 's/.*to\"\:\(.*\)/\1/' |cut -d ',' -f1 |sed 's/"//g')"
echo to: $to
url="$(echo $ret_val | sed 's/.*url\"\:\(.*\)/\1/' |cut -d ',' -f1 |sed 's/"//g')"
echo url: $url
md5="$(echo $ret_val | sed 's/.*md5\"\:\(.*\)/\1/' |cut -d ',' -f1 | sed 's/"//g')"
echo md5: $md5
level="$(echo $ret_val | sed 's/.*level\"\:\(.*\)/\1/' |cut -d ',' -f1 | sed 's/"//g')"
echo level: $level12345678910111213141516171819
执行结果:
ret_val is : [ "from":"0804020982","to":"0804020998","url":"","md5":"408d261924e6c271200fdf14d3a230cc","level":0 ]
from: 0804020982
to: 0804020998
url: : 408d261924e6c271200fdf14d3a230cc
level: 0
I.总结
要注意命令行执行 , 与脚本文件执行之间的差异性 。
Linux环境下文本处理 , 提取需要的内容?用awk可以实现你linux命令提取文本的需求linux命令提取文本,示例如图linux命令提取文本:
Linux下常用文本处理命令 Linux下常用文本处理命令大全
Linux下面有很多经典linux命令提取文本的非常有用linux命令提取文本的命令linux命令提取文本,其中处理文本的命令就有很多 。下面就让linux命令提取文本我们一起看看这些经典的Linux文本处理命令有哪些吧 。
一. sort
文件排序, 通常用在管道中当过滤器来使用. 这个命令可以依据指定的关键字或指定的字符位置, 对文件行进行排序. 使用-m选项, 它将会合并预排序的输入文件. 想linux命令提取文本了解这个命令的全部参数请参考这个命令的info页.
二. tsort
拓扑排序, 读取以空格分隔的有序对, 并且依靠输入模式进行排序.
三. uniq
这个过滤器将会删除一个已排序文件中的重复行. 这个命令经常出现在sort命令的管道后边.
四. expand, unexpand
expand命令将会把每个tab转化为一个空格. 这个命令经常用在管道中.
unexpand命令将会把每个空格转化为一个tab. 效果与expand命令相反.
五. cut
一个从文件中提取特定域的工具. 这个命令与awk中使用的print $N命令很相似, 但是更受限. 在脚本中使用cut命令会比使用awk命令来得容易一些. 最重要的选项就是-d(字段定界符)和-f(域分隔符)选项.
六. paste
将多个文件, 以每个文件一列的形式合并到一个文件中, 合并后文件中的每一列就是原来的一个文件. 与cut结合使用, 经常用于创建系统log文件.
七. join
这个命令与paste命令属于同类命令. 但是它能够完成某些特殊的目地. 这个强力工具能够以一种特殊的形式来合并两个文件, 这种特殊的形式本质上就是一个关联数据库的简单版本.
join命令只能够操作两个文件. 它可以将那些具有特定标记域(通常是一个数字标签)的行合并起来, 并且将结果输出到stdout. 被加入的文件应该事先根据标记域进行排序以便于能够正确的匹配.
八. head
把文件的头部内容打印到stdout上(默认为10行, 可以自己修改). 这个命令有一些比较有趣的选项.
九. tail
将一个文件结尾部分的内容输出到stdout中(默认为10行). 通常用来跟踪一个系统logfile的.修改情况, 如果使用-f选项的话, 这个命令将会继续显示添加到文件中的行.
十. wc
wc可以统计文件或I/O流中的”单词数量”:
十一. fold
将输入按照指定宽度进行折行. 这里有一个非常有用的选项-s, 这个选项可以使用空格进行断行(译者: 事实上只有外文才需要使用空格断行, 中文是不需要的)(请参考例子 12-23和例子 A-1).
十二. fmt
一个简单的文件格式器, 通常用在管道中, 将一个比较长的文本行输出进行”折行”.
十三. col
这个命令用来滤除标准输入的反向换行符号. 这个工具还可以将空白用等价的tab来替换. col工具最主要的应用还是从特定的文本处理工具中过滤输出, 比如groff和tbl. (译者: 主要用来将man页转化为文本.)
十四. column
列格式化工具. 通过在合适的位置插入tab, 这个过滤工具会将列类型的文本转化为”易于打印”的表格式进行输出.
十五. colrm
列删除过滤器. 这个工具将会从文件中删除指定的列(列中的字符串)并且写到文件中, 如果指定的列不存在, 那么就回到stdout. colrm 2 4 filename将会删除filename文件中每行的第2到第4列之间的所有字符. p=""/filename将会删除filename文件中每行的第2到第4列之间的所有字符.
Caution: 如果这个文件包含tab和不可打印字符, 那将会引起不可预期的行为. 在这种情况下, 应该通过管道的手段使用expand和unexpand来预处理colrm.
十六. nl
计算行号过滤器. nl filename将会把filename文件的所有内容都输出到stdout上, 但是会在每个非空行的前面加上连续的行号. 如果没有filename参数, 那么就操作stdin.
nl命令的输出与cat -n非常相似, 然而, 默认情况下nl不会列出空行.
十七. pr
格式化打印过滤器. 这个命令会将文件(或stdout)分页, 将它们分成合适的小块以便于硬拷贝打印或者在屏幕上浏览. 使用这个命令的不同的参数可以完成好多任务, 比如对行和列的操作, 加入行, 设置页边, 计算行号, 添加页眉, 合并文件等等. pr命令集合了许多命令的功能, 比如nl, paste, fold, column, 和expand.
pr -o 5 –width=65 fileZZZ | more 这个命令对fileZZZ进行了比较好的分页, 并且打印到屏幕上. 文件的缩进被设置为5, 总宽度设置为65.
一个非常有用的选项-d, 强制隔行打印(与sed -G效果相同).
十八. gettext
GNU gettext包是专门用来将程序的输出翻译或者本地化为不同国家语言的工具集. 在最开始的时候仅仅支持C语言, 现在已经支持了相当数量的其它程序语言和脚本语言.
想要查看gettext程序如何在shell脚本中使用. 请参考info页.
十九. msgfmt
一个产生二进制消息目录的程序. 这个命令主要用来本地化.
二十. iconv
一个可以将文件转化为不同编码格式(字符集)的工具. 这个命令主要用来本地化.
二十一. recode
可以认为这个命令是上边iconv命令的专业版本. 这个非常灵活的并可以把整个文件都转换为不同编码格式的工具并不是Linux标准安装的一部分.
二十二. TeX, gs
TeX和Postscript都是文本标记语言, 用来对打印和格式化的视频显示进行预拷贝.
TeX是Donald Knuth精心制作的排版系统. 通常情况下, 通过编写脚本的手段来把所有的选项和参数封装起来一起传到标记语言中是一件很方便的事情.
【linux命令提取文本 linux如何提取bin文件】关于linux命令提取文本和linux如何提取bin文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- Xbx用什么cpu,xbx用什么显示器
- SAP事务代码运行不出来,SAP物料清单事务代码
- 第五人格竞速赛是什么游戏,第五人格竞速模式怎么玩
- go语言开发stm32 go语言开发桌面程序
- 报警的java代码,java实时监控报警
- pythonsocks安装,socks5 python
- 土耳其大学的区块链,土耳其大学怎么样
- C语言函数共用的变量 c语言函数共用的变量是什么
- 小程序开通外卖会员收费吗,小程序开发收费价目表