我需要输出所有出现在A和Z之间的文本,但只有那些在{和}中进一步找到A和Z的文本。
下面是一个示例文件:
Once upon a AtimeZ, a mouse climbed up a tree.
Once at {the }top of AaZ {treeA, Zhe AfoundZ an apple.}
"Oh, this {is a Anice Zapple,"A saidZ the} AmouseZ.
The mouse ate {the AappleZ} happily.
输出将如下所示:
,
found
nice
said
apple
该文件不包含嵌套的
我有一个文件,其中每一行包含一个句子,在字符>和<之间找到一个单词。例如:
Martin went shopping at >Wallmart< and lost his wallet
French food >tastes< great
我正在寻找一个命令从shell中运行,它将为每一行打印单词">“和"<”。
提前谢谢。
为什么使用sed命令:sed /^a/,/i$/p打印所有行,而不仅仅是以"a“开头、以"i”结尾的行?我不太清楚sed /BEGIN/,/END/p是如何工作的。
STDIN:
arthuri
John
Johnny
Michael
STDOUT:
arthuri
arthuri
John
John
Johnny
Johnny
Michael
Michael
sed -n "/regexp/p"只打印与regexp匹配的行,而不打印其他行。这似乎完全等同于grep所做的工作。我看到使用这个构造而不是grep的唯一用例是,如果您已经在sed中做了一些事情,并且将管道输送到另一个程序中,这将是不正确的。
有人能想到为什么他们会在grep上使用这个构造的其他原因吗?
我有一个文件example.txt,它包含以下文本:
[one]: bla bla bla onebla twobla
[two]: hey heya noheya
[onemore]: i got mad and etc
我需要grep并且只显示在[myword]之后的文本:尝试以这样的方式测试它:
grep [myword] /tmp/example.txt | cut -d ':' -f 2
在每个[myword]上,它都会打印括号后面的所有内容,但是如何才能只得到我所需要的,而不是全部呢?
我只需要打印某些括号后的测试。例如,我希望只打印[one]:行中的文本,而不是[
我正在尝试编写一个bash脚本,该脚本接受几个变量,然后使用grep对给定的文件进行查找/替换,以获得包含该字符串的文件列表。我认为我遇到的问题是在sed中看到变量,我不确定它还可能是什么。
if [ "$searchFiles" != "" -a "$oldString" != "" -a "$newString" != "" ]; then
echo -en "Searching for '$searchFiles' and replacing '$oldS
我在尝试从grep到sed的电话号码。
首先,我提取了我想要用sed打印的内容的开始和结束线:
grep -n "Start" file1 | cut -d: -f 1 | head -n 1
grep -n "End" file1 | cut -d: -f 1 | head -n 1
现在,我需要使用这些数字打印所有从开始到结束逐行。例如。
sed -ne '1,30w output1' file1
我不知道如何做到这一点,因为行号到sed的管道将被视为“输入”,对吗?
示例:
Start
some text
some more text
En
假设我有很多文件以
First Line Name
Second Line Surname Adress
Third Line etc
etc
现在我使用grep来匹配第一行。但我这样做实际上是为了找到第二行。第二行不是可以匹配的模式(它只是依赖于第一行)。我的regex模式有效,我使用的命令是
grep -rHIin pattern . -A 1 -m 1
现在,-A选项在匹配之后打印行。-m选项在1 match 之后停止(因为还有其他行与我的模式匹配,但我只对第一次匹配感兴趣.)
这实际上是可行的,但输出如下:
./example_file:1: First Line Nam