我有一个包含大量文本的文件,但我只想打印开头包含"@“的单词。例如:
My name is @Laura and I live in @London. Name=@Laura. City=@London
我如何打印以@开头的所有单词?我做了以下操作,它成功了,但我想使用sed来完成它。我试过几个拍子,但我什么也不能打印出来。
grep -o -E "@\w+" file.txt
谢谢
我知道,通过使用"-A NUM"开关,我可以在每次匹配后打印特定数量的尾随行。我只是想知道是否有可能打印尾线,直到在每一次匹配之后找到一个特定的单词。例如,当我搜索“单词A”时,我希望看到包含“A”的行以及后面的行,直到包含“D”的行为止。
背景:
Word A
Word B
Word C
Word D
Word E
Word F
命令:
grep -A10 'Word A'
我需要这个输出:
Word A
Word B
Word C
Word D
仅使用sed,我试图打印最后一个单词包含字母'd‘的文件行。内容可能类似于:
Honey, I am leaving for grocery shopping. Do you want anything?
Are you well? You look exhausted.
然后只打印第二行。
我试过sed -En '/\s*([\S]+)\b[a-zA-Z]*d[a-zA-Z]*\b\.$/p' lines.txt
在阅读了之后,我的正则表达式的逻辑是,我匹配最后一个单词,然后检查该单词中的任何字符组合,断言某个'd‘字符存在,然后是随后的任何字符组合。
我哪里
我有一个文件,其中每一行包含一个句子,在字符>和<之间找到一个单词。例如:
Martin went shopping at >Wallmart< and lost his wallet
French food >tastes< great
我正在寻找一个命令从shell中运行,它将为每一行打印单词">“和"<”。
提前谢谢。
我知道sed使用以下命令从test.txt打印单词FOO和BAR之间的行
sed -n '/FOO/,/BAR/p' test.txt
但是,如何让sed仅在其中一行具有匹配模式时才打印FOO和BAR之间的行呢
例如,文件text.txt包含以下行:
Error- Undefined port
line1
line2
Undefined port in ALU1
line3
Error- Undefined port
line4
line5
Undefined port in LSU
line6
Error- Undefined port
line7
line8
U
我正在学习编程课程,我试图做一个实践活动,但我被困住了。我有一个包含以下列表的文件:
Monday day
Tuesday day
Easter holiday
Monday day
christmas holiday
Tuesday day
Friday day
Thursday day
thanksgiving holiday
我想做的是
把这份名单整理一下,
打印只包含不重复的名称的新列表,
计算每个单词出现在列表中的次数,以及
在计数器和单词之间插入一个选项卡。
这将是我想要的输出
是否有可能编写一个包含两个参数的脚本: word表示要在目录文件中分隔的任何单词,n表示该单词必须位于该文件中任何行中的位置,最后在任何行中只打印在该位置具有该单词特征的文件?
到目前为止我的代码是:
word=$1
for files in .
do
grep -rl "$word"
done
但是,这只会打印带有该单词的文件,而我不知道如何实现其余的文件。
例如,我有这样的文件:
Hel@@lo hi 123
if a equals b
you
two three four
dany uri four 123
1 2 3333333
我需要命令只打印包含3个单词的行。
我试图用sed编写命令,但不知怎么的,它没有识别行尾的char $。
sed '/.\+[ ]\+.\+[ ]\+[^ ]\+$/!d' $1
嗨,我正在尝试解决一个问题,只使用sed命令,而不使用管道。但是,我可以将sed命令的结果传递给从文件读取的文件或te。例:
sed s/dog/cat/ >| tmp
or
sed s/dog/cat/ < tmp
总之,假设我有一个文件F1,它的内容是:
Hello hi 123
if a equals b
you
one abc two three four
dany uri four 123
产出应是:
if if if a equals b
dany dany dany uri four 123
说明:程序必须只打印只有4个单词的行,当它打印它们时,它必须打印一行的第一
我有两份文件。一个带有单词列表,比如a.txt,另一个第二行是单词的csv文件,比如b.csv。我想检查b.csv的第二行中是否有来自a.txt的单词,并且只打印那些不匹配的行。csv文件中共有3行。
到目前为止,我所实现的是打印那些从单词列表中包含单词的行。但我想要的是另一行。下面是我的代码:
reader = csv.reader(open('b.csv', 'rb'))
op = open('a.txt', 'r')
ol = op.readlines()
for row in reader:
for word
我有一个脚本,它返回几行输出,我试图打印最后一行的最后两个单词(不管输出中有多少行)。
$ ./test.sh
service is running..
check are getting done
status is now open..
the test is passed
我试着按下面的方式运行,但它打印每一行的最后一个单词。
$ ./test.sh | awk '{ print $NF }'
running..
done
open..
passed
如何使用awk或sed打印最后两个单词“传递”
我试图(用sed)替换一整行,其中包含一个特定的单词和末尾的换行符。在这里,测试文件:
this # target for substitution
this is a test
another test?
现在,我已经在这里做了已发布,从连系帖子中,我了解了如何以某种方式做到这一点:
sed 's/^this$/test/g' testfile
这是可行的,至少看起来是这样的,因为单词this末尾的换行符仍然存在:
test # target for substitution but newline is still there
this is a test
another
我必须创建一个脚本(更准确地说是一行程序),它将接收指向目录( ex /.The/stan/ direct)目录(在我的示例中是直接目录)的链接作为参数,其中包含
未知数量的目录和files.Those文件包含由一个",“(逗号)、一个”“(空格)或一个”/n“(换行符)分隔的单词。.The脚本必须计算所有这些文件中的可打印字符(”“和",”除外)并打印结果,还可以重定向在名为errors.txt的文件中运行脚本时发生的所有错误。现在我的问题是?如何编写这样的脚本(一行程序)?