使用regexp字符串,如何删除包含匹配的第一行之前的所有行?例如,我如何才能改变这一点:
lost
load
linux
loan
linux
这方面:
linux
loan
linux
我试过:
echo "lost
load
linux
loan
linux" | sed -e 's/.*^li.*$//g'
但是它返回这个,而不是改变任何东西:
lost
load
linux
loan
linux
我想让它工作,这样当没有匹配的时候,它就不会输出任何东西。
假设在linux中有一个文件,它的行用空格分隔。
例如:
This is linux file
This is linux text
This is linux file 1
This is linux file 3
现在我只想打印那些在文件行中有第5列的行。在本例中,我的输出应该是第3行和第4行(其中1和3作为第5列)
做这件事最好的方法是什么?
我有一个文件'tes.html‘:
<html>
<head><title>Index of /Data/Movies/Hollywood/2016_2017/</title></head>
<body bgcolor="white">
<h1>Index of /Data/Movies/Hollywood/2016_2017/</h1><hr><pre><a href="../">../</a>
<a h
样本文本
I like Linux
I like Microsoft
I like Solaris
I hate Linux
I hate Microsoft
I hate Solaris
我试图找出一个与regex X匹配但没有regex的行。使用示例文本,我试图得到以下内容。
I like Linux
I like Microsoft and Linux
I like Solaris and Linux
I hate Linux
I hate Microsoft
I hate Solaris
请注意,它只添加到有like而没有Linux的行中。
我在linux设备驱动程序一书中读到了这行脚本。是干什么的呢?
major=$(awk "\\$2= =\"$module\" {print \\$1}" /proc/devices)
在上下文中:
#!/bin/sh
module="scull"
device="scull"
mode="664"
# invoke insmod with all arguments we got
# and use a pathname, as newer modutils don't look in
我对Linux非常陌生,我已经发现了很多关于如何在文件中进行字符计数的有用信息,但是Linux/终端中是否有一种方法可以根据每一行特定字符发生的次数对文本文件进行排序呢?
例如:
baseball
aardvark
a man a plan a canal panama
cat
bat
bill
按字母"a“的出现次数排序:
a man a plan a canal panama
aardvark
baseball
cat
bat
bill
对于"cat“和"bat”一次出现"a“的情况,我不关心等号行的顺序是否被颠倒,只是对按字符频率排列的一般行感兴趣。