grep

在UNIX中grep一个选项卡

南笙酒味 提交于 2020-02-27 09:01:39
如何在Unix平台上的文件中 grep tab(\\ t)? #1楼 答案更简单。 写你的grep并在引用类型中选项卡键,它至少在ksh中运行良好 grep " " * #2楼 一个很好的选择是使用'sed as grep'(如本经典的 sed教程中所述 )。 sed -n 's/pattern/&/p' file 示例(适用于bash,sh,ksh,csh,..): [~]$ cat testfile 12 3 1 4 abc xa c a c\2 1 23 [~]$ sed -n 's/\t/&/p' testfile xa c a c\2 [~]$ sed -n 's/\ta\t/&/p' testfile a c\2 #3楼 如果使用GNU grep,您可以使用Perl样式的正则表达式: grep -P '\t' * #4楼 一种方法是(这是与Bash) grep -P '\t' -P 打开Perl正则表达式,因此\\ t将起作用。 正如用户 放松 所说,它可能是特定于GNU grep。 如果shell,编辑器或终端允许,可以选择在其中插入一个选项卡。 #5楼 使用gawk,将字段分隔符设置为tab(\\ t)并检查字段数。 如果超过1,则有/是标签 awk -F"\t" 'NF>1' file 来源: oschina 链接: https://my.oschina.net

文本处理 awk

微笑、不失礼 提交于 2020-02-27 08:46:59
======================================================== 一、awk简介 awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个 或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix 下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。 awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定 模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出( 屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字 母。因为它的作者是三个人,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的 GNU版本,它提供了Bell实验室和GNU的一些扩展。 二、awk的两种形式语法格式 awk [options] 'commands' filenames awk [options] -f awk-script-file filenames ==options: -F 定义输入字段分隔符,默认的分隔符是空格或制表符(tab) ==command: BEGIN{} {} END{}

让你的 Linux 命令骚起来

…衆ロ難τιáo~ 提交于 2020-02-27 03:38:13
@[toc] 本文将为读者提供许多不同 Linux 命令的简要概述。 将特别强调解释如何在执行数据科学任务的上下文中使用每个命令。 我们的目标是让读者相信这些命令中的每一个都非常有用,并且让他们了解每个命令在操作或分析数据时可以扮演什么角色。 管道符号 “ | ” 许多读者可能已经熟悉了“ | ”符号,但是如果不熟悉的话,值得提前指出: 下面几节中讨论的命令的所有输入和输出都可以使用“ | ”符号自动“管道”输入到彼此中! 这意味着每个命令完成的所有特殊任务都可以链接在一起,从而生成非常强大和简短的迷你程序,所有这些都直接在命令行上完成! grep 什么是 grep? “ grep”是一个可用于从文件中提取匹配文本的工具。 您可以指定许多不同的控件标志和选项,这些标志和选项允许您非常有选择性地确定希望从文件或流中提取哪些文本子集。 Grep 通常用作“面向行”的工具,这意味着在找到匹配的文本时,Grep 将打印该行上的所有文本,尽管您可以使用“-o”标志只打印匹配的行部分。 为什么 grep 是有用的? “ grep”很有用,因为它是在大量文件中搜索特定文本块的最快方法。 一些很好的用例有: 从巨大的 web 服务器日志中过滤访问特定的 web 页面; 为特定关键字的实例搜索代码库(这比使用 Eclipse Editor 的搜索要快得多,也更可靠) ; 在 Unix

Linux常用命令2

北慕城南 提交于 2020-02-27 00:13:48
1.查看输出内容 echo 2.查看网络 netstat -natpl | grep httpd 或者 netstat -natpl | grep 80 3.查看主机名字 cat/etc/hosts 4.查看文件系统 df 5.查看某个文件总大小 ,如果去掉s,例如 du -h /etc/ 将查询每个子目录大小并汇总 6.查看内存以及交换分区 free 7.添加和删除用户,例如添加和删除用户 hdfs 8.免密登录 来源: https://www.cnblogs.com/liuyi13535496566/p/12369827.html

nginx的平滑升级与版本回退

北慕城南 提交于 2020-02-26 21:17:14
1. 平滑升级 用新的虚拟机server3进行测试。 (1)下载两个不同的nginx版本,一旧一新。对旧版本的nginx进行编译。 [root@server3 ~]# ls nginx-1.14.2.tar.gz nginx-1.17.8.tar.gz [root@server3 ~]# tar zxf nginx-1.14.2.tar.gz [root@server3 ~]# ls nginx-1.14.2 nginx-1.14.2.tar.gz nginx-1.17.8.tar.gz [root@server3 ~]# cd nginx-1.14.2 [root@server3 nginx-1.14.2]# ./configure --prefix=/usr/local/nginx (2)启动旧版本的nginx并查看版本。 [root@server3 nginx-1.14.2]# cd /usr/local/nginx/sbin/ [root@server3 sbin]# ls nginx [root@server3 sbin]# ./nginx [root@server3 sbin]# netstat -antlupe |grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 22074 5018/nginx: master

Spring Boot 通用启动脚本

你说的曾经没有我的故事 提交于 2020-02-26 18:10:50
#!/bin/bash ## Author LinkinStar ## UPDATE 2019-01-05 version="1.0.1"; appName=$2 if [ -z $appName ];then appName=`ls -t |grep .jar$ |head -n1` fi function start() { count=`ps -ef |grep java|grep $appName|wc -l` if [ $count != 0 ];then echo "Maybe $appName is running, please check it..." else echo "The $appName is starting..." nohup java -jar ./$appName -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx4G > /dev/null 2>&1 & fi } function stop() { appId=`ps -ef |grep java|grep $appName|awk '{print $2}'` if [ -z $appId ];then echo "Maybe $appName not running, please check it..." else

linux当中的正则/扩展表达式(grep篇)

纵然是瞬间 提交于 2020-02-26 16:40:20
正则表达式在linux当中我们去使用shell脚本的时候经常会用到正则表达式,所以整理一些我们会用到的表达式,以便提升shell脚本能力 一、正则表达式(1) 通过grep命令实践正则表达式 比如我们去过滤带有bbb字段的行,直接可以通过grep "xx" file去获取到 [root@zhaocheng ~]# cat test1 aaa bbb ooo cccc dddd eeee fffff ggggg hhhhh bbbbb kkkkk pppppp ssssss xxxxxx mmmmmmmm [root@zhaocheng ~]# grep "bbb" test1 aaa bbb ooo fffff ggggg hhhhh bbbbb 比如去过滤出以aaa开头的行,我们就需要使用^去匹配了,^表示固定行首 引号加不加都可以 [root@zhaocheng ~]# grep "^aaa" test1 aaa bbb ooo [root@zhaocheng ~]# grep '^aaa' test1 aaa bbb ooo [root@zhaocheng ~]# grep ^aaa test1 aaa bbb ooo ^是匹配行首,而$是匹配行尾,可以试一下,引号也可以不加 [root@zhaocheng ~]# grep mm$ test1 kkkkk pppppp

迭代器、生成器、面向过程编程

怎甘沉沦 提交于 2020-02-26 09:09:34
阅读目录 一 迭代器 二 生成器 三 面向过程编程 一 迭代器 一 迭代的概念 #迭代器即迭代的工具,那什么是迭代呢?#迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不是迭代 print('===>') l=[1,2,3] count=0 while count < len(l): #迭代 print(l[count]) count+=1 二 为何要有迭代器?什么是可迭代对象?什么是迭代器对象? #1、为何要有迭代器? 对于序列类型:字符串、列表、元组,我们可以使用索引的方式迭代取出其包含的元素。但对于字典、集合、文件等类型是没有索引的,若还想取出其内部包含的元素,则必须找出一种不依赖于索引的迭代方式,这就是迭代器 #2、什么是可迭代对象? 可迭代对象指的是内置有__iter__方法的对象,即obj.__iter__,如下 'hello'.__iter__ (1,2,3).__iter__ [1,2,3].__iter__ {'a':1}.__iter__ {'a','b'}.__iter__ open('a.txt').__iter__ #3、什么是迭代器对象? 可迭代对象执行obj.__iter__()得到的结果就是迭代器对象 而迭代器对象指的是即内置有__iter__又内置有__next_

Bash: grep pattern from command output

点点圈 提交于 2020-02-26 08:12:39
问题 I'm really new with bash, but it's one of the subjects on school. One of the exercises was: Give the line number of the file "/etc/passwd" where the information about your own login is. Suppose USERNAME is my own login ID, I was able to do it perfectly in this way: cat /etc/passwd -n | grep USERNAME | cut -f1 Which simply gave the line number required (there may be a more optimised way). I wondered however, if there was a way to make the command more general so that it uses the output of

Bash: grep pattern from command output

妖精的绣舞 提交于 2020-02-26 08:12:28
问题 I'm really new with bash, but it's one of the subjects on school. One of the exercises was: Give the line number of the file "/etc/passwd" where the information about your own login is. Suppose USERNAME is my own login ID, I was able to do it perfectly in this way: cat /etc/passwd -n | grep USERNAME | cut -f1 Which simply gave the line number required (there may be a more optimised way). I wondered however, if there was a way to make the command more general so that it uses the output of