当前位置:  技术问答>linux和unix

UNIX 去空格和截取问题

    来源: 互联网  发布时间:2016-07-21

    本文导语:  UNIX中怎样去空格和截取啊? 我现在有如下数据:(我想把时间取出来)  AT 0030 +1DAYS UNTIL 0130 +1DAYS 我打算先把文件去空格,搞成:AT0030+1DAYSUNTIL0130+1DAYS 再从AT截取0030,再从UNTIL 截取0130, 截取的方法是:。。...

UNIX中怎样去空格和截取啊?
我现在有如下数据:(我想把时间取出来)

 AT 0030 +1DAYS UNTIL 0130 +1DAYS

我打算先把文件去空格,搞成:AT0030+1DAYSUNTIL0130+1DAYS

再从AT截取0030,再从UNTIL 截取0130,
截取的方法是:。。。

|
首先,如果用gawk -f参数,那么f后面接的必须是awk的[program]文件,而不是单独的program。
数据如下:
[Hsxzhe--21:57:25 sed]$:cat time
AT 0030 +1DAYS UNTIL 0130 +1DAYS
AT 0031 +1DAYS UNTIL 0131 +1DAYS
AT 0032 +1DAYS UNTIL 0132 +1DAYS
AT 0033 UNTIL 0133 +1DAYS
AT 0034 +1DAYS UNTIL 0134 +1DAYS
AT 0035 UNTIL 0135 +1DAYS
AT 0036 +1DAYS UNTIL 0136 +1DAYS
AT 0037 +1DAYS UNTIL 0137 +1DAYS
[Hsxzhe--21:57:27 sed]$:cat time.awk
{
if($4=="UNTIL")
print $2, $5
else
print $2, $4
}
[Hsxzhe--21:57:52 sed]$:gawk -f time.awk time
0030 0130
0031 0131
0032 0132
0033 0133
0034 0134
0035 0135
0036 0136
0037 0137
[Hsxzhe--21:58:24 sed]$:

其次,如果你不想另外建[program]文件的话就不能在gawk后再加-f
数据如下:
[Hsxzhe--21:58:24 sed]$:gawk '{if($4=="UNTIL")print $2, $5;else print $2, $4}' time
0030 0130
0031 0131
0032 0132
0033 0133
0034 0134
0035 0135
0036 0136
0037 0137
[Hsxzhe--22:00:43 sed]$:


最后,对tr -d ' ' | sed -r 's/^AT([0-9]*).*UNTIL([0-9]*).*/1 2/' 的理解。
tr -d是过滤数据中的控制字符,这确实很有必要。
括号表达式,替换字符串中的1代表搜索字符串中的第一个转义圆括号,2代表第二个,括号表达式在搜索字符串中需要用反斜杠转义,故其实是:sed  's/^AT ([0-9]*).*UNTIL ([0-9]*).*/1 2/'
带有转义圆括号的正则表达式于没有该圆括号的作用相同,于是上面这个其实是sed  's/^AT [0-9]*.*UNTIL [0-9]*.*/1 2/',这样容易理解了,搜索字符串中:^AT行首匹配,然后是时间,.*匹配两个时间中间的任意字串。替换字符串中:用搜索字符中的两个圆括号中匹配到字串代替全行。

数据如下:
[Hsxzhe--22:22:53 sed]$:cat time
AT 0030 +1DAYS UNTIL 0130 +1DAYS
AT 0031 +1DAYS UNTIL 0131 +1DAYS
AT 0032 +1DAYS UNTIL 0132 +1DAYS
AT 0033 UNTIL 0133 +1DAYS
AT 0034 +1DAYS UNTIL 0134 +1DAYS
AT 0035 UNTIL 0135 +1DAYS
AT 0036 +1DAYS UNTIL 0136 +1DAYS
AT 0037 +1DAYS UNTIL 0137 +1DAYS
[Hsxzhe--22:22:58 sed]$:tr -d ''

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • UNIX特急!!!digital unix问题,请专家快来!!!
  • 小问题, Unix 如何建立一个文件 ,unix 文件有后缀名吗
  • 入门问题,我想向UNIX编程方向发展,单目前不会UNIX,我该如何做
  • unix下的非常的奇怪WC的问题,向unix高手请教 好急呀!!!!!!!!!!!!!!!
  • 菜鸟问题:现在要做unix下的c/c+编程的几个问题?
  • unix下jdk配置问题及发布问题.
  • UNIX的一个初级问题
  • [学习UNIX编程]初学UNIX编程,遇到一个小小的问题,烦劳大虾帮忙解惑,谢谢!
  • 关于UNIX文件I/O操作的问题,解决问题立即结贴
  • 新手,请教安装SCO Unix的问题
  • unix使用问题
  • 我初学 Unix 编程,在看《Unix环境高级编程》时有一个问题请指教。
  • 安装UNIX问题
  • Unix与windows的共存问题。
  • unix下发email问题
  • unix下编译问题
  • 一个关于安装SCO UNIX的问题
  • UNIX跟98安装问题
  • 关于unix系统安全问题!急!!!
  • linux和unix问题,望高手指教
  • java命名空间java.util.regex类pattern的类成员方法: unix_lines定义及介绍
  • 刚刚接触Unix系统和Unix编程。急需Unix下多线程程序设计和网络Socket程序设计方面的资料。
  • unix/Linux下c++ boost thread库读写锁介绍
  • 关于UNIX的历史 : 1973年,K.Thompson和D.M.ritchie,用C改写UNIX。那么,在此之前,UNIX是用什么写的?
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • 没有unix系统我如何学习unix
  • php将unix时间戳转换成字符串时间函数(date)
  • unix盘哪里有下载的??哪里有比较好的unix论坛??万分感谢!!!!!!!!!
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • 急!装完unix5.06,再装win2000。重启后不能进unix.
  • UNIX支持中文否,请推荐UNIX好书


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3