免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2601 | 回复: 13
打印 上一主题 下一主题

sed问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-26 09:02 |只看该作者 |倒序浏览
sed '/./{H;$!d}' 什么意思?

论坛徽章:
0
2 [报告]
发表于 2010-04-26 09:19 |只看该作者
把模式空间的内容追加进保持空间,并且删除除最后一行之外的模式空间内容

论坛徽章:
0
3 [报告]
发表于 2010-04-26 09:21 |只看该作者
这个东西没什么意思,只会显示最后一行

论坛徽章:
0
4 [报告]
发表于 2010-04-26 09:32 |只看该作者
回复 2# iori809


    [root@localhost tmp]# sed -e '/./{H;$!d}' -e 'x;/CREATE TABLE `aa`/!d;q' test.sql

DROP TABLE IF EXISTS `aa`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `aa` (
  `aa` float(10,9) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
请帮我解释下这个sed的工作过程,谢谢

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
5 [报告]
发表于 2010-04-26 09:36 |只看该作者
回复 3# 飞鸿无痕


不能简单的这样说,当文本由空行的时候就不同了。

论坛徽章:
0
6 [报告]
发表于 2010-04-26 09:38 |只看该作者
回复 4# youcz


    下面的是原始数据还是执行后的数据?不是的话把原始数据贴出来吧

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
7 [报告]
发表于 2010-04-26 09:40 |只看该作者
回复 4# youcz


test.sql的原始内容是啥?

论坛徽章:
0
8 [报告]
发表于 2010-04-26 09:47 |只看该作者
回复 7# Shell_HAT


    文件较大,贴相关部分

-- Host: localhost    Database: test
-- ------------------------------------------------------
-- Server version       5.1.40-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `aa`
--

DROP TABLE IF EXISTS `aa`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `aa` (
  `aa` float(10,9) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `aa`
--

LOCK TABLES `aa` WRITE;
/*!40000 ALTER TABLE `aa` DISABLE KEYS */;
INSERT INTO `aa` VALUES (10.000000000),(10.000000000),(10.000000000),(10.000000000),(10.000000000),(10.000000000),(1.333322287),(1.333324552),(10.000000000),(10.000000000),(10.0
00000000);
/*!40000 ALTER TABLE `aa` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `actor`
--

DROP TABLE IF EXISTS `actor`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `actor` (
  `actor_id` int(11) DEFAULT NULL,
  `name` char(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
9 [报告]
发表于 2010-04-26 10:36 |只看该作者
sed '/./{H;$!d}' 命令的意思很简单,大家都看得懂。

至于用来做什么,要结合上下文才清楚。

论坛徽章:
0
10 [报告]
发表于 2010-04-26 10:38 |只看该作者
回复 9# blackold


    是这样的黑哥~他后面有一串命令
sed  '/./{H;$!d};x;/CREATE TABLE `aa`/!d;q'

然后原始数据贴出来了,运行完

DROP TABLE IF EXISTS `aa`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `aa` (
  `aa` float(10,9) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

是这个
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP