文章结束给大家来个程序员笑话:[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. java连接mysql执行ddl_Mysql 执行DDL导致Waiting for table metadata lock
  2. 调用短信接口,先var_dump()看数据类型是object需要json_decode(json_encode( $resp),true)转换成array...
  3. 为什么有的人还不到三十岁,就对工作失去了兴趣呢?
  4. R使用lm构建多变量线性回归模型
  5. 学者要研究真问题做真学问
  6. 教程:从FLASH过渡到SILVERLIGHT.(实例+源码)
  7. esp32 micropython web服务器_ESP32 Arduino教程:Websocket server(服务器)
  8. python 判断时间是否大于6点_48 python判断时间是否落在两个时区之间(只比较时刻不比较日期)...
  9. java学习(122):treeset自定义排序
  10. 获取spring里的bean
  11. java真数组_Java真数组
  12. python就业方向-连小学生都在学的Python,究竟就业方向有哪些?
  13. html符号中文含义大全特殊,中文标点符号大全名称
  14. 爬虫项目#4567电影网scrapy数据爬取moviePro/持久化储存handReqPro
  15. ssm毕设项目焦虑自测与交流平台k43cf(java+VUE+Mybatis+Maven+Mysql+sprnig)
  16. php 鼠标 移动 手型,css各种手型集合(css禁止手型)
  17. AUTOCAD使用笔记
  18. 初中晨读必看古诗名句
  19. ACM.大一寒假2.15考试
  20. 数字功放-耐福NTP功放芯片详细性能概述

热门文章

  1. 为Unity3D创建素材(2):模型、绑定、动画
  2. 《亲密关系》书摘 [美]莎伦 布雷姆
  3. 关于sql server 安装程序在运行 Windows Installer 文件时遇到错误。
  4. 歌谣学前端之React中jsx
  5. 线上招生太难?教育行业裂变方案奉上
  6. BZOJ 5395--[Ynoi2016]谁的梦(STL容斥)
  7. 深入理解移动最小二乘法曲面拟合代码(MLS2D.m)
  8. 扇贝编程python学习笔记-基础篇6
  9. Android 捕获主线程异常崩溃
  10. mysql里乘号怎么_如何在MySQL SELECT上将无符号整数乘以-1?