8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

sed命令主要用来修改文本文件用的,使用命令的方式来快速修改文件.

和vim一样,但是它是使用交互式命令的.

一般和管道命令一起使用.

主要功能: 插入,删除,选中,替换

以之前user.csv文件举例.

文件如下:

由于MacOs的sed和gnu-sed不一样,我们以gnu-sed为准.

mac安装.

brew install gnu-sed

修改sed alias sed=gsed 在.zsh或bash环境改.

或者改软链接.

ln /usr/local/bin/gsed /usr/local/bin/sed

必须前置知识:

标准输入/输出,有时间再细说.

linux有三种标准输入/输出.名称文件描述含义设备STDIN0标准输入键盘

STDOUT1标准输出显示器

STDERR2标准错误显示器

STDIN: 标准输入,普通的键盘输入

比如我们收集一个输入当成变量.1

2read -p "用户名:" username

echo $username

ps: zsh和bash的语法稍微不同.

zsh环境使用1

2read -s "pwd?密码:"

echo $pwd

提示:

zsh用 “变量?提示符代替-p”

-s: 隐藏输入

废话说. 这里的输入就是标准的STDIN

STDOUT:意思是输出到显示器的内容.

echo 输出来的内容就是 标准输出.

我们常见的一个语句.

xxx.sh 2>&1 > /dev/null

这语句表示”所有的错误和输出都重定向到黑洞里面”

解释一下这语句.主要是 2>&1 > /dev/null

2: 表示STDERR,错误消息

1: 表示STDOUT,标准输出

>: 表示重定向,全写应该是 1> 代表标准输出重定向.还有 2>,代表错误重定向.

/dev/null: 表示文件,只是dev/null是一个特殊空文件

关键是 2>&1 > ,全写应该是 2>&1 1> xxx,意思是把2也是STDERR错误输出 重定向到1标准输出,最后标准输出,重定向到 某个文件.

也可 反着写.

把 2>&1放到最后.

|:管道符,表示 把 前面命令的标准输出当到后面命令的标准输入.

如:1

2

3cat user.csv | awk {print}

awk {print} user.csv

了解了标准输入输出和管道符,重定向,开始sed的正题

参数

-e : 在命令行模式下编辑,默认就是-e,可以省略

-i : 写入文件,

-n : 只显示匹配行,不加该参数,默认打印最终结果

-f : 使用外部脚本,相对于-e,太复杂不讲

写入文件

sed 标准输入,只能在内存和标准输出中修改,只有使用 > 重定向 才能写入到文件.

平时我们使用 sed 只在标准输出中修改,一般不直接修改文件,因为直接修改文件有风险.

怎么修改文件呢?

使用 sed -i '备份后缀名' '操作命令' 文件

注:macOS必须填写备份后缀名,但允许为空

例:我们要删除文件的第1行.1sed -ie '1d' user.csv

1d 代表删除第1行,后面 “删除” 再细讲.

在使用标准输入时就不能用 -i 参数了.

echo "lalalalal" | sed -ie '1d' 这个就会出错.

意思. 使用 -i 必须带文件.

实际修改文件 使用 -i参数.

标准输入

后面基演示都在标准输入和标准输出.不修改文件本身.

删除行操作

使用 d 命令

按行删除

sed -e '1d' user.csv

解释:

1d: 1为第1行,d代表删除操作符,

1,4: 代表1至4行

$:代表最后一行

例:

正则删除

sed '/正则/d'

删除带关键字”阿木”的行:

sed '/阿木/d' user.csv

删除空白行

sed '/^[( )|s]*$/d' user.csv

注意:sed 的正则很变态,()或{}有时需要转义,有时不需要.

增加行

使用a和i操作符

a: 在后面追加

i: 在前面添加

格式:

sed -e '/模式/a 内容' 文件

在第1行前加1行内容:

sed -e '1i 内容' user.csv

在最后一行添加1行内容:

sed -e '$a 最后一行' user.csv

注意空文件的情况.文件必须存在且不能为空.

避免空文件空行,一般用>或 ‘>>’ 添加.

echo '' > tmp.txt

查找到正则添加:

sed -e '/阿金/i "# 这就是我"' user.csv

修改内容

修改内容是很常用的功能.

使用s命令

语法:

sed -e 's/正则/替换/模式'

如修改配置文件:把root变成admin1sed -i -e 's/username=(.*);/username=admin;/' config.ini

打印行

p来打印输出行.

打印奇数行

sed -n -e '1~2p' user.csv

解释: ~表示递增,从1行开始递增,1,1+2,3+2行

偶数行:

sed -n -e '0~2p' user.csv

0,2,2+2行

匹配行的下一行

sed -n -e '2{n;p}' //第2行的下1行,第3行

上一行:

sed -n -e '2{p;n}' //第2行的上1行,第1行

范围打印:

sed -n -e '/开始正则/,/结束正则/'

读取文件

r命令

在匹配行下,读取加载文件内容.

例,在php类中为每个函数里面加载一段代码.1sed -e '/function ([A-Za-z0-9_]*)((.*)){/r log_hook.php' class.php

效果如下.

写入文件

w,把匹配的每一行写入到某个文件,和上面刚好相反.1sed -e '/function ([A-Za-z0-9_]*)((.*)){/w function.php' class.php

跨行匹配

sed默认是按行处理的.有时候有大段文字是跨多行的,就不好处理了.

sed '/开始标准/,/结束标记/'

比如上面截取函数列表.1sed -n -e '/function /,/}/w function.php' class.php

得到这样的结果.

linux三剑客面试题,Linux三剑客之sed相关推荐

  1. Linux实战教学笔记12-linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

  2. linux进程 面试题,Linux面试题,浅析常见Linux命令面试题及答案

    原标题:Linux面试题,浅析常见Linux命令面试题及答案 对于Linux面试来说如果面试官问到你不会的问题,你就说这个不太熟悉,没有具体研究过,千万别不懂装懂,还扯一堆没用的话题来掩饰,这样只会让 ...

  3. linux操作系统2试题,linux操作系统试题

    答案仅供参考有发现错误的或知道答案请写上 一.选择题(共20小题,每小题2分,共计40分) 1.Linux是一个免费的类Unix操作系统,它最初是由芬兰人Linus Torvalds于( A )年开发 ...

  4. linux 日志面试题,Linux运维 | 面试题

    统计web日志中IP访问次数 有一个大于10G的apache访问日志,要求找出访问/stat.php页面次数大于1000次的前100个IP 日志样本如下: 212.11.129.182 - [26/M ...

  5. linux bsp笔试题,Linux BSP工程师面试常问问题汇集.pdf

    Linux BSP工程师面试常问问题汇集 Linux BSP 工程师面试常问问题汇集 TD 1.本文章遵从" 署名-非商业性使用 3.0 中国大陆 (CC BY-NC 3.0 CN)&quo ...

  6. Linux实战教学笔记12:linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

  7. 深入浅出linux三剑客之sed必杀技一例

    缘起:上完培训课后,同学们对sed加正则处理问题的热情高涨,氛围相当好,但是,有个别同学还是有些晕乎,因此,撰写此文.此例如果搞熟练了,sed和正则的大部分常用技术你掌握起来就简单了. 如果还有不会的 ...

  8. 12.Linux三剑客之sed

    文章目录 1.sort命令 2.uniq 命令 3.cut 命令 4.tr命令 6.wc命令 7.linux三剑客之sed 7.1格式 7.2参数 7.3定位 1.数字定位法 2.正则定位法 3.数字 ...

  9. 小猿圈Linux基础面试题,看看你能答对几道?

    最近身边的很多朋友都在学习linux,从最开始的安装软件都需要百度一天的他们,现在已经成长为了,不需要百度就可以把自己弄懵圈的了,接下来的几天小猿圈linux老师会为大家准备一些实用的linux技巧分 ...

最新文章

  1. 【Linux就该这么学 20期培训笔记 02】新手必须掌握的 Linux 命令
  2. BigData/Cloud Computing:购买并登录Windows弹性云服务器之详细攻略(图文教程)—更优惠、更贴心!
  3. 小程序使用vant-dialog组件内容出不来_微信官方小程序同构新方案Kbone全解析
  4. python中with是什么意思_python中with的用法
  5. 第八篇 android 内容提供组件机制--MVC模式
  6. 鸟叫就能黑掉AI系统,而且你根本察觉不到
  7. TX2Ubuntu16.04上安装 kinectV2
  8. 在使用刚体时的几个注意点和参数
  9. cut最后几位 shell_shell中字符串截取命令:cut,printf,awk,sed
  10. Go基础编程:Socket编程
  11. 2012年2月份第1周51Aspx源码发布详情
  12. Python OpenCV实现身份证号码识别
  13. Ubuntu系统挂载大于2T新硬盘方法
  14. c语言isfinite用法,C# Double.IsFinite()用法及代码示例
  15. 公钥加密、数字签名、消息认证
  16. 固话月租费有望全免 包月套餐将逐步取代座机费
  17. 安卓手机文件管理器内置FTP服务器无需安装任何软件共享安卓文件wifi下手机共享电脑文件
  18. 学编程,自学还是选择培训机构?
  19. ncs java 成都 面试_成都java工程师面试一般都是哪些问题,基础难不难!
  20. Qt disconnect函数

热门文章

  1. Python 伪开发者对于搜狐云景的测评
  2. mysql内存淘汰_从创建索引过程中内存变化来看SQL Server与MySQL的内存淘汰算法
  3. 关于morden c++ design中的kdl问题(singleton)的解决
  4. “功能”之后,网约车决胜“服务”
  5. NASA CEA 安装指南
  6. 腾讯云服务器违规封禁数据恢复和迁移教程,腾讯云账号违规被封如何解封迁移数据
  7. 解决Deprecated: Methods with the same name as their class will not be constructors in报错方案
  8. 多wan口路由器,如何实现域名解析?
  9. 音圈电机工作原理与直线电机的对比
  10. 52o1314小符号_特殊名字符号(52o1314特殊上下组合小符号)