shell小技巧(六)读取文件末尾为数字行的末尾数字
以上一题文件s1.txt为源文件
方法1:
awk -F "[^0-9]" '/[0-9]$/{print $NF}' s1.txt
或
awk -v FS="[^0-9]" '/[0-9]$/{print $NF}'
设置分隔符为非数字,对以数字结尾的行输出最后1个字段
方法2:
sed -nr '/[0-9]$/{s/.*[^0-9]([0-9]+)$/\1/;p}'
或
sed -n /[0-9]$/p s1.txt | sed -nr 's/.*[^0-9]([0-9]+)$/\1/g;p'
第一种写法是用了嵌套
方法3:
使用read line循环实现。
此方法不如其他两种方法简洁。主要是想练习几个知识点。
包括:文件存在判断、逐行读取、获取字符串长度、判断是否是数字、终止当前循环和终止本次循环、获取部分字符串
#!/bin/bash
> s4.txt
if [ -f s1.txt ]; then
echo "starting..."
else
echo "error!need s1.txt!"
exit 1
fi
f1=""
f0=""
f2=0
#echo $f0
#exit 0
while read line
do
f0=`echo $line | sed -n '/[0-9]$/p'`
f1=`echo $f0 | awk '{print length($0)}'`
#echo $f1
if [ $f1 -eq 0 ]; then
f1=0
echo "this line is 0"
continue;
fi
#echo "this line is gt 0 ------$f1"
f2=""
j=0
while [ $j -le $f1 ];
do
f2=${line:j}
echo $f2 | grep -q '[^0-9]'
f3=$?
if [ $f3 -ge 1 ]; then
#this is number,output
echo $f2 >>s4.txt
echo $f2
break;
fi
let j=j+1
done
f0=""
done < s1.txt
shell小技巧(六)读取文件末尾为数字行的末尾数字相关推荐
- uwsgi怎么通过浏览器访问某个脚本_4个Shell小技巧帮你提高机器学习效率:写好脚本,事半功倍...
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 在机器学习的实践过程中,用好Shell能帮你很多节省时间. 最近,有位来自ETHZ的学生分享了一些Shell小技巧.对程序员来说,这些技巧更 ...
- 6条shell小技巧,让脚本显得不再业余
6条shell小技巧,让脚本显得不再业余 原创作者: 58沈剑 来自公众号:架构师之路 画外音:说实话,技术思路类文章(WHY, HOW),比技术实践类(WHAT)更难写. 如何能让自己的shell显 ...
- 4个Shell小技巧,帮你提高机器学习生产效率
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 在机器学习的实践过程中,用好Shell能帮你很多节省时间. 最近,有位来自ETHZ的学生分享了一些Shell小技巧.对程序员来说,这些技巧 ...
- Pyinstaller打包python文件太大?教你三个小技巧有效减小文件体积
简介 有时候需要在未安装Python环境的平台上运行py程序,使用pyinstaller打包很方便,但打包后的可执行文件实在是太大了.原因在于打包时pyinstaller本就已经关联了很多的pytho ...
- python win32转pdf 横版_Python 小技巧之 Office 文件转 PDF
文章来源于公众号:Python技术 作者:派森酱 在日常的生活工作中,难免需要用到一些 小Tip 来解决工作中遇到的小难题,今天的文章给大家安利一个方便快捷的小技巧,将 Office(doc/docx ...
- linux shell 读取文件指定单行 多行 连续行 倒数几行
三种方法 1.tail -n +/-数字 文件名 2.head -n 数字 文件名 3.sed -n "开始行,结束行p" 文件名 下面分别介绍这几种方法 cd 到要文件所在目录. ...
- VIM使用小技巧-重新载入文件
VIM使用小技巧-重新载入文件 - Anything的专栏 - 博客频道 - CSDN.NET VIM使用小技巧-重新载入文件 2012-03-02 23:37 348人阅读 评论(0) 收藏 举报 ...
- linux脚本中如何读取文件,如何在Shell脚本中逐行读取文件
原标题:如何在Shell脚本中逐行读取文件 在这里,我们学习Shell脚本中的3种方法来逐行读取文件. 方法一.使用输入重定向 逐行读取文件的最简单方法是在while循环中使用输入重定向. 为了演示, ...
- 在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别
[时间]2018.11.14 [题目]在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别 一.去除换行符 以使用readline进行读取为例: import red ...
- pandas使用read_csv函数读取文件的前N行数据并保留表头、pandas使用read_csv函数读取制表符分割的文件(tab-delimited)、自定义设置sep参数
pandas使用read_csv函数读取文件的前N行数据并保留表头.pandas使用read_csv函数读取制表符分割的文件(tab-delimited).自定义设置sep参数 目录
最新文章
- sklearn GaussianNB(高斯朴素贝叶斯)模型使用RandomSearchCV获取最优参数及可视化​​​​​​​
- IOS常用正则表达式
- refreshtoken用mysql_「SpringCloud」 Spring Security OAuth2 Mysql管理在线Token
- velocity 遍历map
- 钉钉宜搭邵磊:钉钉宜搭低代码加速业务互联 让改变发生
- java的守护线程与非守护线程
- 今年计算机考研时间公布,今年考研时间初步确定?
- 【Python函数】——sort,sorted
- POJ 3422 费用流
- Nagios监控平台完全攻略 (二)
- 文件系统的简单的操作
- 谭晓生大闹中国计算机中心,360高管谭晓生不满中国计算机大会拖堂和临时加议程,现场摔话筒发飙...
- 分享MYSQL中的各种高可用技术
- bash实现自动补全
- cd oracle home/dbs,Oracle专家高级编程学习笔记
- python小星_Python学习【第3篇】:列表魔法
- java 10什么意思_详解:Java 10的10个新特性
- 【毕业设计8】基于STM32的红外测距系统
- 用91卫图助手获取研究区(勾画研究矢量shp格式范围等)
- 为N台linux服务器传输大文件