有时候需要从大文件中随机抽取N行出来进行模拟,但是用python或者别的语言感觉不太方便,linux下直接分割感觉会更快捷。...一般可以考虑以下的方法: 1. shuf shuf -n100 filename # 从文件中随机选取100行 2. sort sort -R filename | head -n100 -R参数是将文件随机顺序...是一个处理文件神器,可以像下面这么写(别的写法也可实现): awk 'BEGIN{srand()} {print rand()"\t"$0}' filename | sort -nk 1 | head -n100
替换第N[3]个88为--: sed '/88/{x;s/^/./;/^\.\{3\}$/{x;s/.*/--/;x};x;}' file sed ':a;N;$!...替换最后一个匹配的88为--: sed ':a;/\n88/!{$s/88/--/;N;ba};P;D' file sed ':a;N;$!...\n88 内容的第一行打印,删除,直到不匹配/\n88/(因为换行符已经被打印出去了,所以不再会匹配到 \n88),这时候才继续往下读,如果又读到88的行,那么又执行P;D循环,同上操作。...一直到匹配到最后一个88的行,继续读取到末行时执行替换,N 因为没有下一行可读,所以会自动中止命令,因为没有 -n 参数会打印 pattern space 里的内容到屏幕,所以就不会再执行后面的 ba...» 本文链接:(转载)Linux之sed匹配第N个进行替换 » 转载请注明来源:刺客博客
defasf fsdsas dffa dffadsfs afdasffds [root@localhost wzcs]# sed...www.liezi.net www.liezi.net www.liezi.net www.liezi.net dffadsfs afdasffds [root@localhost wzcs]# sed
生信技能树学习笔记 sed 流编辑器,一般用来对文本进行增删改查 图片 图片 图片 常见功能: 增 删 改 查 图片 cat readme.txt | sed '1,2i Well' ## 在第一行和第二行的前面增加...well cat readme.txt | sed '1,3d' ## 删除第1-3行 cat readme.txt | sed -e '2i Well' -e '2a Well' ## 第二行的前后加...Well cat readme.txt | sed '2,4c ******' ## 会发现三行转变成一行 cat readme.txt | sed 's/is/IS' ## 默认替换第一个 cat readme.txt...| sed '/www/ s/ee/EE' ## 匹配到有www的那一行进行替换 cat readme.txt | sed ‘/ee/p’ ## 有ee那一行多打印一次 cat readme.txt...| sed -n '/ee/p' ## 单独打印有ee的行,-n只显示经过处理的行 cat Data/example.fq | sed -n '2~4p' | head ## 打印序列行 cat
题意 找到单链表倒数第 n 个节点,保证链表中节点的最少数量为 n 。...样例 给出链表 3->2->1->5->null 和 n = 2,返回倒数第二个节点的值 1 思路1 一个简单的思路就是先将链表进行反转,然后在反转后的链表中,顺着找第 n 个元素即可。...例如对于 100 个元素的链表,查找倒数第 100 个,那么就等于将链表遍历了 2 次,效率很低。...然后 p1 和 p2 一起向后移动,直到 p2 指向 NULL,此时 p1 就会指向倒数第 n 个元素上。 代码实现2 /** * Definition for ListNode....n个节点
使用awk取某一行数据中的倒数第N列:$(NF-(n-1)) 比如取/etc/passwd文件中的第2列、倒数第1、倒数第2、倒数第4列(以冒号为分隔符) [root@ipsan-node06 ~]#
Linux 命令 sed 命令解析 sed 是一种流编辑器,主要用来对文本进行替换、删除、新增、选取等操作。...sed 的一般形式如下: sed [options] 'command' filename options是可选参数 command是要执行的操作命令 filename是要处理的文件名。...I'm studying sed. 现在要用 sed 命令将其中的第一行 Hello world! 替换为 Hi there!...源码演示: sed '1s/Hello/Hi there/' test.txt Linux 命令 sed 命令注意事项 sed 命令一般不会对原始文件进行修改,而是将修改后的结果输出到标准输出流中,如果需要修改原始文件...sed 命令支持多种操作符,如查找、替换、删除、插入等操作。 sed 命令可以通过正则表达式进行模式匹配,以实现更灵活的操作。
sed可以在文本的某一行前或者后插入一行或者多行文本。这涉及到insert和append两个命令。...插入(insert,i)会在指定行前增加一个新行: $ echo "New line" | sed 'i\Old line' Old line New line 附加(append,a)会在指定行后增加一个新行...: $ echo "New line" | sed 'a Old line' New line Old line 在文件中的第三行前插入: $ cat file1.txt one two three...$ sed '3i New line' file1.txt one two New line three 在文件中的第三行后插入: $ sed '3a New line' file1.txt one...two three New line 插入到文件末尾: $ sed '$a New line' file1.txt one two three New line
多行命令 N: 将数据流的下一行加进来创建一个多行组来处理。...[root@localhost ~]# sed 'N ; s/System.Administrator/Desktop User/' data3 The first meeting of the Linux...如果要匹配的在数据流中的最后一行,N命令会错过他。因为没有其他行可读入道模式空间跟这行合并。...[root@localhost ~]# sed -n 'N;/System\nAdministrator/P' data3 The first meeting of the Linux System...将1、2行相反顺序输出 [root@localhost ~]# sed -n '/first/{ > h > n > p > g > p > }' data2 This is the second data
前言 在linux上查找日志的时候,如果我想找出某个时间段的日志,比如查找今天早上8点到下午2点的日志。...用grep不太方便直接过滤出来,可以使用sed根据时间去查找 sed -n ‘/开始时间日期/,/结束时间日期/p’ all.log 查找日志 比如下面这段日志,前面的时间格式都是类似 2019-...-n ‘/2019-10-24 22:16:21/,/2019-10-24 22:16:59/p’ all.log [root@VM_0_2_centos logs]# sed -n '/2019...后来经过实践,指令是没有问题的,只是开始时间和结束时间必须要是日志里面有才行。...如果开始时间日志里面是没有的,那么查询结果为空,比如开始时间没有2019-10-24 22:16:22 sed -n ‘/2019-10-24 22:16:22/,/2019-10-24 22:16:
删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2....当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗?...---- 解法一 先遍历一遍计算链表长度;再遍历一遍删除倒数第n个节点 ? 解法二:进阶 只遍历一遍链表,能否解决这个问题?...class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { assert(n >=...示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?
node2.next = node3; // node3.next = node4; // node4.next = node5; int n...= 1; ListNode result = removeNthFromEnd(head, n); System.out.println(result); ...p2 = head; //p2先走n步 for (int i = 0; i < n; i++) { p2 = p2.next; ...} //当指针p2走完n步以后,让指针p2和p1同时向前走,直到p2走到最后一个节点,即p2->next=NULL // 整个过程p2和p1之间相隔n-1个节点 ...{ if (head == null || n == 0) return head; int num = 1; ListNode
参数详解 [root@linux ~]# sed [-nefr] [动作] 参数: -n :使用安静(silent)模式。...在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行(或者动作)才会被列出来。...(预设是基础正规表示法语法) 动作说明: [n1[,n2]]function n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作 是需要在 10 到 20 行之间进行的...n1,n2 之间的行!...' 记得要加上-n变成silent模式,只输出经过sed特殊处理的。
-n 's/test/wz/p' data5 This is a wz line [root@pppoe ~]# sed 's/test/wz/w te' data5 This is a wz line...d 1 Test line 2 [root@pppoe ~]# echo "Test line 2" | sed 'a\Test d 1' Test line 2 Test d 1 在第三行前面插入一行数据...[root@pppoe ~]# sed '3i\wz' data3 one line of test. two lin of test. wz thress line is test 在第三行后面插入一行数据...-n '/wangzi/p' /etc/ppp/chap-secrets wangzi * wangzi * [root@pppoe ~]# sed -n '2,3p' /etc/ppp/chap-secrets...pppoe ~]# cat /fei1 zhangzhang * zhangzhang * wangzi * wangzi * 1,2w表示将1,2行写入/fei1文件,-n表示不讲结果显示在标准stdout
例如: sed -n '3p' datafile 只打印第三行 只显示指定行范围的文件内容,例如: # 只查看文件的第100行到第200行 sed -n '100,200p' mysql_slow_query.log...默认情况下,sed 把输入行打印在屏幕上,选项-n 用于取消默认的打印操作。当选项-n 和命令 p 同时出现时,sed 可打印选定的内容。...sed -n '/my/p' datafile #选项-n取消sed默认的打印,p命令把匹配模式my的行打印一遍。 6.2 d 命令 命令 d 用于删除输入行。...6.10 n 命令 sed 使用该命令获取输入文件的下一行,并将其读入到模式缓冲区中,任何 sed 命令都将应用到匹配行紧接着的下一行上。...6.11 y 命令 该命令与 UNIX/Linux 中的 tr 命令类似,字符按照一对一的方式从左到右进行转换。
题意 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。 样例 给出链表 1->2->3->4->5->null 和 n = 2....删除倒数第二个节点之后,这个链表将变成 1->2->3->5->null. 思路 类似于 链表倒数第n个节点,先找到被删除节点的前节点,然后将前节点的 next 指向被删除节点的的 next 即可。...* @param n: An integer....preDelete.next = preDelete.next.next; return dummy.next; } } 原题地址 LintCode:删除链表中倒数第...n个节点
Linux命令之sed 在开始写文章之前,再次重复那句话:sed,grep和awk被称之为Linux三剑客。...这句话我一直在强调,足以说明这三个命令在linux中的重要性,废话不多说,今天我们来看看sed的一些操作。...sed执行模板如下: sed ‘模式{命令1;命令2}’ 即逐行读入模式空间,执行命令,最后输出打印出来. 01 n命令和N命令 首先来说n命令: 这个命令简单来讲就是读取下一行...sed -n 'n;p'第二个n才是n命令的位置,它的意思是提前读取下一行,也就是偶数行,然后执行p命令,也就是打印。...再来说说N命令: N命令简单来说就是追加下一行到模式空间,同时将两行看做一行,但是两行之间依然含有\n换行符,然后执行后续命令。
sed使用参数 [root@www ~]# sed [-nefr] [动作] 选项与参数: -n :使用安静(silent)模式。...在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。...动作说明: [n1[,n2]]function n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 10 到 20 行之间进行的,则『 10,20[动作行为]...』 function: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!...使用-n的时候将只打印包含模板的行。
-i:则是上一行 -c:替换n1-n2行为c后面的字符串。 -d:删除n1-n2行字符串。...-p:打印和sed -n结合使用 ---- sed输出指定行、排除指定行输出、非连续行输出、行替换显示 ---- 输出指定行sed -n 'n1,n2 p',例如2-3行,sed -n '2,3p'...filename 删除指定行 sed '2,3d' filename 指定行后面添加,字符串,例如 第二行后面添加’after line 2’ sed '2a after line 2' 指定行替换...,例如2-3行替换为 'Line2-3' sed '2,3c Line2-3' 输出myfile.txt lines 5-7 以及 10-13 : sed -n -e '5,7p' -e '10,13p...$/Z/g' 最后一个字符为0-9则替换为’Z’, sed 's/[0-9]$/Z/g' 行首添加’B’, sed ‘s/^/B/g’ 行首添字符0-9替换为’B’, sed ‘s/^[0-9]/B/g
只查看文件的第3行到第9行 sed -n '3,9p' /var/log/yum.log ? 过滤特定字符串,显示正行内容 sed -n '/root/p' yum.log ?...显示包含"hhh"的行到包含"omc"的行之间的行 sed -n '/hhh/,/omc/p' yum.log ?...打印1-5行,并显示行号 sed -n -e '1,5p' -e '=' yum.log ? 仅仅显示匹配字符串的行号 sed -n '/root/p' yum.log ?...打印最后一行 sed -n '$p' yum.log ?...打印1-5行,并显示行号 sed -n -e '1,5p' -e '=' yum.log ?
领取专属 10元无门槛券
手把手带您无忧上云