文章结束给大家来个程序员笑话:[M]

1、echo输出有色及指定巨细字符串

echo -e "\e[0;31;1m要输出的字符串\e[0m"

echo 加上-e参数使得 \ 拥有了C中的printf输出一样的转义功能

\e[0;31;1m为设置输出字符为红色31(无背景色),1m粗体

更多控制功能如下:

编码 颜色/动作
0 重新设置属性到缺省设置
1 设置粗体
2 设置一半亮度(模拟彩色显示器的颜色)
4 设置下划线(模拟彩色显示器的颜色)
5 设置闪烁
7 设置反向图象
22 设置一般密度
24 关闭下划线
25 关闭闪烁
27 关闭反向图象
30 设置玄色远景
31 设置红色远景
32 设置绿色远景
33 设置棕色远景
34 设置蓝色远景
35 设置紫色远景
36 设置青色远景
37 设置白色远景
38 在缺省的远景颜色上设置下划线
39 在缺省的远景颜色上关闭下划线
40 设置玄色背景
41 设置红色背景
42 设置绿色背景
43 设置棕色背景
44 设置蓝色背景
45 设置紫色背景
46 设置青色背景
47 设置白色背景
49 设置缺省玄色背景

其他有趣的代码还有:

\033[2J 清除屏幕
\033[0q 关闭所有的键盘指示灯
\033[1q 设置“滚动锁定”指示灯 (Scroll Lock)
\033[2q 设置“数值锁定”指示灯 (Num Lock)
\033[3q 设置“大写锁定”指示灯 (Caps Lock)
\033[15:40H 把关闭移动到第15行,40列
\007 发蜂鸣生beep

2、字符串判断

if (echo "this is string test!" | grep -q '^[a-zA-Z0-9]\+$'); then

echo "字符串输入正当"

else

echo "字符串输入不正当"

fi

上面脚本将输出“字符串输入不正当”,因为所加的条件判断是用来检测字符串是不是只由a-z或A-Z或0-9这些字符构成,而上面的字串里有空格符

if (echo "12my_project" | grep -q '^[a-zA-Z]');

then

echo "工程名输入正当"

else

echo "工程名输入不正当"

fi

上面脚本将输出“工程名输入不正当”,因为所加的条件判断是用来检测字符串是否以字母扫尾的

关于管道操纵符号 | 更多

http://blog.csdn.net/cnctloveyu/article/details/4131770

关于更多grep

http://blog.csdn.net/deansrk/article/details/6628630

关于正值表达式

http://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F

3、在指定文件中查找指定内容并插入字符(模板)

(echo "/panther_config/i"; echo-e "${NEW_PROJECT_NAME}_config :    unconfig\n   @./mkconfig \$(@:_config=) arm omap3 ${NEW_PROJECT_NAME}\n"; echo '.'; echo 'wq') |ed Makefile

上面这句脚本的作用是在Makefile这个文件里查找panther_config字串并将模板

${NEW_PROJECT_NAME}_config :    unconfig\n   @./mkconfig \$(@:_config=) arm omap3 ${NEW_PROJECT_NAME}\n

插入到查找到的字串前面,这个是我用来自动给xloader 的 Makefile增长工程用的,如下我所添加的工程名为NEW_PROJECT_NAME = zt6810,那么由上面的脚本将在Makefile里生成如下内容

zt6810_config :    unconfig
@./mkconfig $(@:_config=) arm omap3 zt6810

这里用到了ed命令,更多用法

http://biancheng.dnbcw.info/shell/242647.html

4、批量替换及巨细写转换

sed -i "s/ZT6810/`echo $NEW_PROJECT_NAME | tr [a-z][A-Z]`/g" include/configs/$NEW_PROJECT_NAME.h

每日一道理
在每个人心中,都曾停留过那些值得怀念的人,也许还在,也许早已消逝,在茫茫人海中丢失,于是,那份怀念便得凄凉,因为模糊的记忆中只剩下一个“空壳”,没有什么,甚至连自己的心都装不下,时间把一切抹平,也把当日的泪水封锁,因为已没有,怀念只是悲凉!

上面脚本要注意红色所标部份 ` 是 table键上面的那个反单引号

上面命令可拆分成两部份

a、字母巨细写转换

echo $NEW_PROJECT_NAME | tr [a-z] [A-Z]

这句是将变量NEW_PROJECT_NAME中所有的小写字母转换成大写,注意[a-z]与[A-Z]之间的空格符

b、sed -i .....

将a中得到的已转换成大写的字串替换掉ZT6810字串

sed几个经常用到语句:

在一个文件的第几行后插入新行

sed -i '第几行i\要插入的内容'   文件

在一文件中指定的字符后插入内容

sed 's/指定的字符/&要插入的字符/'  文件

替换指定的字符

sed -i 's/指定的字符/要替换的字符/'  文件

在指定字符所在行后插入字符

sed '/指定字符/a\要插入的字符'  文件

linux perl shell perl  vi grep awk xargs  批量替换

方法1:
 
这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 pom.xml文件,更郁闷的是在很多pom.xml文件里都单独指定了资源库的url,我需要把这些资源库的url统一指定到nexus本地中心库.
手 工一个个改文件配置有点不太现实,所以google了一下,找到批量替换文件内容的好方法,命令结构如下:
find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'下面这个例子就是将当前目录及所有子目录下的所有pom.xml文件中的”http://repo1.maven.org/maven2“ 替换为”http://localhost:8081/nexus/content/groups/public“.
find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content /groups/public|g'这里用到了Perl语言,
perl -pi -e 在Perl 命令中加上-e 选项,后跟一行代码,那它就会像运行一个一般的Perl 脚本那样运行该代码.
从命令行中使用Perl 能够帮助实现一些壮大的、实时的转换。当真研究正则表达式,并正确地使用,将会为您省去大批的手工编辑工作。
find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content/groups/public|g'
 
方法2:

Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。
用sed命令可以批量替换多个文件中的 字符串。 
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
例如:我要把mahuinan替换 为huinanma,执行命令: 
sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'
这是现在linux最简单的批量替换字符串命令了!
具体格式如下: 
sed -i "s/oldString/newString/g"  `grep oldString -rl /path`
实例代码:sed -i "s/巨细多少/日月水火/g" `grep 巨细多少 -rl /usr/aa`
sed -i "s/巨细多少/日月水火/g" `grep 巨细多少 -rl ./`

方法3:

在日程的开辟过程当中,可能大家会碰到将某个变量名修改 为另一个变量名的情况,如果这个变量是一个局部变量的话,vi足以胜任,但是如果是某个全局变量的话,并且在很多文件中进行了使用,这个时候使用vi就是 一个不明智的选择。这里给出一个简单的shell命令,可以一次性将所有文件中的指定字符串进行修改:
grep "abc" * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/abc/abcde/g'

from: http://blog.zol.com.cn/1395/article_1394052.html

弥补说明
sed -i "s/oldString/newString/g"  `grep oldString -rl /path`    
对多个文件的处置可能不支持,需要用 xargs, 搞定。
变种如下:
grep oldString -rl /path | xargs sed -i "s/oldString/newString/g"

注意: 
在  `grep oldString -rl /path`    中 ` 为1前边的翻引号`,而不是enter 前的 '

文章结束给大家分享下程序员的一些笑话语录: 问:你觉得让你女朋友(或者任何一个女的)从你和李彦宏之间选一个,你觉得她会选谁?  
  答:因为李艳红这种败类,所以我没女友!

--------------------------------- 原创文章 By
设置和字符串
---------------------------------

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/05/27/3102176.html

设置字符串shell中文件处理及字符串处理相关推荐

  1. mysql 反向匹配子串,Mysql 模糊匹配(字符串str中是否包含子字符串substr)

    1.LIKE 通常与 % 一同使用,类似于一个元字符的搜索.若substr不在str中,则返回0. SELECT 'test' LIKE '%e%' as `ret`; # 1 SELECT 'tes ...

  2. Python 轻松解决从 K 个字符串数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合。(对比用库和不用库的方法)

    文章目录 一.问题说明 二.解决方法 一.问题说明 问题来源:粉丝的提问 从 K 个字符串数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合(对比用库和不用库的方法) 二.解决方法 iter ...

  3. linux 变量替换字符串,shell中常用的变量处理、字符串操作(之一)

    在shell中,当我们已经获取到某个变量的变量值的时候,可能还需要对变量值进行一定的处理,才能到我们最终想要的结果,今天我们就来聊聊shell中常见的变量处理方法,我们通常会对变量进行如下处理. 一. ...

  4. linux sed 正则提取字符串,Shell中使用grep、sed正则提取和替换字符串

    Linux中使用grep正则提取字符串 echo office365 | grep -P '\d+' -o find . -name "*.txt" | xargs grep -P ...

  5. java中文件转Base64字符串及Base64字符串转文件

    文件转Base64字符串及Base64字符串转文件 import org.apache.commons.codec.binary.Base64;/** * @Description: 文件转为base ...

  6. linux 添加字符串数组中,Linux-Shell基础(变量,字符串,数组)

    一. 什么是shell shell是一个用C语言编写的程序,它是用户使用Linux的桥梁,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统 ...

  7. shell中文件路径用变量定义_shell学习笔记01(概述amp;变量)

    Shell概述 为什么要学习Shell呢? 因为有用. Shell脚本入门 1.脚本格式 脚本以#!/bin/bash开头(指定解析器) 2.第一个Shell脚本:helloworld (1)需求:创 ...

  8. shell中文件路径用变量定义_环境变量

    环境变量可以使得 bash shell 存储有关 shell 会话和工作环境的信息,允许在内存中存储数据. 在 bash shell 中,环境变量分为: 全局变量 局部变量 全局变量对 shell 会 ...

  9. python判断字符串中包含某个字符串_Python中最常用的字符串方法!

    译 / 忧郁的红秋裤 字符串是字符序列.Python中内置的string类代表基于Unicode国际字符集的字符串.除了Python中常见的操作外,字符串还有一些专属于它们的附加方法.下图显示了所有这 ...

最新文章

  1. 这25张图,彻底看懂25个复杂的数学公式!
  2. mysql:mysql error:Access denied for user 'root'@'localhost' (using password: YES)
  3. Servlet过滤器介绍之原理分析(转)
  4. 普通筛法时间界的证明
  5. 河流水质指标预测与不确定性分析:机器学习模型的比较研究--文献阅读
  6. soapui工具_自动化测试需知的4项测试工具
  7. Airflow 中文文档:用Dask扩展
  8. 怎样写出没有bug的代码?
  9. SAP BC430 课程中文自学笔记
  10. 两台电脑如何实现共享文件
  11. git学习笔记——廖雪峰git教程
  12. c++采集声卡输出_使用Core Audio实现对声卡输出的捕捉
  13. input和output实例
  14. Smart Thief 问题
  15. 海南大学计算机网络空间安全学院研究生,海南大学计算机与网络空间安全学院2021考研调剂公告...
  16. Java发送附件到邮箱
  17. Larry wall - Perl之父
  18. 重新理解创业——一个创业者的途中思考
  19. [音乐孩子王08 最终回][大野智/千纱/片瀬那奈/丸山隆平]
  20. 鲁棒优化入门(一)——工具箱Xprog和RSOME的安装与使用

热门文章

  1. 电脑记事本可以做出哪些小玩意,大家知道吗?
  2. 倒计时3天!第二届数字孪生城市建设与产业发展高峰论坛不见不散
  3. html网页 js获取当前地理位置
  4. 3ds Max Loft命令详解
  5. “中国智能投影第一股”极米,和小米啥关系?
  6. 视频+课件|3D视觉从入门到精通系统学习教程
  7. css3之实现网红正方体相册弹开动画
  8. Tesseract OCR手写数字的样本训练
  9. 【C语言】字符串小练习(每日小细节012)
  10. 超市通:如何实现积分换购现金?