linux指令 sed指令怎么选择列首先我这边先建一个字母大小转换的脚本test2.shlinux命令获取列,内容如下linux命令获取列:
先介绍些sed -n的应用:
sed命令中p能实现打印匹配行的功能 。我们可以实际看下sed命令带-n和不带-n情况下有什么不同 。
sed -n "1p" test2.sh:带-n选项的话,只打印test2.sh脚本第一行匹配行 。
sed "1p" test2.sh:不带-n的话,不仅打印第一行匹配行,还打印输出test2.sh脚本的全部内容 。
sed -n还可以打印文件的范围,比如打印test2.sh脚本的前两行,我们就可以执行以下命令:sed -n "1,2p" test2.sh,就可以直接打印前两行 。
sed命令可以打印匹配模式行,比如打印test2.sh脚本匹配tr的行,就可以执行以下命令:
sed -n /tr/p test2.sh 。
remark:如果不带-n的话,除linux命令获取列了打印匹配行外,还会打印脚本的全部内容 。
sed -e的应用 。只有当sed命令传递多个编辑命令式,才会使用到-e 。比如:我想打印/tr/匹配行,并且打印匹配行所在的行号,此时存在多个sed参数,就要用到-elinux命令获取列了 。
sed -n -e /tr/p -e /tr/= test2.sh
每个参数前都要带上-e:
sed a\追加命令,命令格式为:sed ’指定地址a\追加内容‘ 目标文件
这个追加内容在匹配行的下一行,只会输出到标准输出,原文件内容是不变的 , 例如在test2.sh脚本的/tr/所在的匹配行的下一行添加“#hello”内容 , 可需要执行:
sed '/tr/a\#hello' test2.sh
一定不要忘记单引号.
还有一个sed i\的追加命令 , 命令格式为:sed ’指定地址i\追加内容‘ 目标文件,跟a\不同,i\追加是在指定位置的上一行追加命令
sed命令中还有一些特殊的匹配 , 比如元字符匹配,此时需要用转义符"\"屏蔽其特殊意义 。
比如:sed -n ‘/\=/p’test2.sh,则打印输出tr一行 。
$在正则表达式中表示尾行,执行sed -n ‘$p’ test2.sh则打印脚本尾行 。
linux命令获取列!表示取反,可以看以下两个例子
sed中可以使用关键字来匹配行,打印我们所需要的内容 , 比如,我希望打印test2.sh第2,3行,可以执行:sed -n "2 , 3P" test2.sh,也可以执行sed -n "/tr/,/exit/p" test2.sh
sed c\的应用,命令格式为:sed ’指定地址c\替换内容‘ 目标文件 。比如,#hello , 替换test2.sh脚本的tr这行,可以执行命令:sed '/tr/c\#hello' test2.sh
sed删除d应用:比如我想删除test2.sh的第2行,可以执行以下命令:sed "2d" test2.sh或者sed /tr/d test2.sh
sed替换s应用:格式 sed s/被替换的字符/替换字符/[替换选项]
比如,我想把test2.sh中tr替换成大写的tr,则可以执行以下命令:sed ‘s/tr/TR/’test2.sh,则把脚本中的tr替换成TR , 完后输出全部内容 。
如果仅想打印替换所在行,则需要试用使用-n和-p:sed -n ‘s/tr/TR/p’ test2.sh:把脚本中的tr替换成TR,然后打印tr所在的行.
如果脚本中存在好几个tr,并且每一行也存在多个tr,如果执行以上命令的话,只会更改每一行的第一个出现的tr,如果要全部把tr转后为TR , 则需要添加G参数:
sed -n ’S/tr/TR/pg’test2.sh 。
w参数是定向输入参数,比如要把上述的变更定向输出到test1.txt中 , 则需要执行:
sed -n ’s/tr/TR/pgw test1.txt’ test2.sh 。
也可以直接把选定的匹配内容写到另一个文本中 , 比如想把test2.sh中tr这一样写到test2.txt中,执行:sed -n ’/tr/w test2.txt‘ test2.sh
如何用Linux命令提取表格文本中的某列这个就需要依靠非常熟练的 LINUX / UNIX SHELL 编程技术、以及 python 语言来提取表格文本中的某列了 。具体的如何实现方法 , 你可以参考相关的 SHELL 编程技术、以及 python 语言编程的书籍,使用程序的方式提取出你需要的任意一列内容 。
情景linux--如何得出一个文件的第二列? 曾经有一同事问我,在linux下如何输出一个文本文件的第二列 , 文本内容不限 。我不假思索地说用 awk 啊 。她追问只有这一种方式么?于是我仔细想了想,……
既然内容不限,则可以自定义文件内容的格式,这样可以用的命令自然会多一些 。
需求为输出文件第二列,则基本上有两种方式实现:
因而,任何能直接输出特定列的命令,以及能够截取或删除其它列的命令都满足此需求 。
为了方便说明 , 列举几个示例文件:
awk自然是最容易想到的,它处理格式化的文本得心应手 。
使用 -F 指定列(字段)分隔符 。
如果文件只有两列 , 还可以使用 $NF,如 awk '{print $NF}' test1.txt。
awk还支持一些函数,同样可以将第二列提取出来,此处不再赘述 。
cut命令的默认字段分隔符是 TAB ,可以使用 -d 重新指定 。-f 列出指定字段 。
如果第二列的字符的起始和结束序号为固定值,如test2.txt,可以使用 -c 参数,截取特定的字符序列 。
sed采用的是第二种实现方式,即将其它列删除掉 , 利用 后向引用 :
在test1.txt中,第二列的前面和后面分别为数字空格和空格数字,所以可以利用 正则表达式 将其输出出来 。
同理:
colrm命令可以删除标准输入中的指定列,但 该命令中所定义的列指的是单个字符 ,这与常规对字段的定义不同,需注意 。
格式如下:
如果只指定start,则大于等于start的列均被删除;如果指定了start和stop,则大于等于start,小于等于stop的列被删除 。
【linux命令获取列 linux列出命令】 因此,此命令可处理第二个字段起始位置为固定值的test2.txt文件 。
read读取文件中的每行,将特定的列输出来 。
shell支持命令替换,通过两次命令替换,得到第二列:
虽然不清楚她从哪里看到的这道题目,题目本身是何用意 。但以一个问题,调动起了对linux多个命令及知识点的学习和总结,还是有价值的 。
欢迎提出不同解法!
相关命令
linux命令获取列的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux列出命令、linux命令获取列的信息别忘了在本站进行查找喔 。
推荐阅读
- 最好玩的网络游戏排行榜,最好玩的网络游戏排行榜前十名
- 视频号怎么出现在订阅号中,视频号是怎么出现的
- sqlserver创建唯一索引语句,sql语言中建立唯一性索引的命令是
- 抖音押赛车的游戏,抖音里赛车的游戏是什么
- 帝国cms数据库php 帝国cms数据库表结构
- 怎么用u盘启动重做系统,华硕重做系统怎么进入u盘启动
- ios系统不更新描述文件,iphone12不更新描述文件
- 夏普液晶电视机怎么样,夏普液晶电视质量到底如何
- 新手入门java项目代码 新手java代码大全