N00b问题:我有两个文件,它们都只有低字母行,并且都是按字母顺序排序的。"file_A“有超过11.000.000行的6-7个字符,而"file_B”大约有400.000行,有3-4个字符。
我想删除"file_A“中的所有行(例如:如果从"file_B”中选中行"cat“,则从"file_A”中删除行"bobcat“或"catwoman”)。现在,我可以使用一个简单的脚本来完成:
while read -r line; do
sed -i "/"$line"/d" $file_A
don
如何修剪一个文件(良好的输入流),使我只得到从模式foo的第一次出现到最后一次出现模式bar的行?
例如,考虑以下输入:
A line
like
foo
this
foo
bar
something
something else
foo
bar
and
the
rest
我期望这个输出:
foo
this
foo
bar
something
something else
foo
bar
我需要多次删除包含某个字符串的文件中的所有行,例如,如果我的文件如下所示:
This is a test toRemove first line
This is a test toRemove second line toRemove
应该生成一个类似于只有第一行的文件
This is a test toRemove first line
我正在尝试从命令行在linux上执行此操作,并尝试使用grep或sed,如下所示
grep -d "toRemove.*toRemove" myFile > myOtherFile
sed '/\toRemove.*toRe
我有一个包含数据的name.csv文件
x
y
z
我有另一个csv文件data.csv,其中的行必须删除
a,20
b,30
x,40
y,50
z,60
我尝试使用以下代码从data.csv文件中删除name.csv中的字符串:
#!/bin/sh
while IFS= read -r name
do
sed '/$name/d' data.csv
done <name.csv
上面的shell脚本不起作用(没有从data.csv文件中删除任何行)。你能帮上忙吗?
我试图在日志文件中搜索未完成的日志活动。例如,我记录了一个“ID 1234的开始活动.”如果成功,下一行将是“活动1234完成”。
我想要“开始.”后面没有相应的“已完成”行的行。
示例日志文件
Starting activity for ID 1234
ID 1234 completed successfully
Starting activity for ID 3423
ID 3423 completed successfully
Starting activity for ID 9876
ID 9876 completed successfully
Starting activity f
我正在尝试使用Python语言中的正则表达式逐行解析一个大的制表符分隔的文本文件,并打印包含5个或更多0/1或1/1实例的行。
我的脚本就快完成了,但我正在努力处理5个或更多的实例。
这将打印具有一个匹配项的行。
import re
f = open ("infile.txt", "r")
out = open("outfile.txt", "w")
for line in f:
if re.match(r"(.*)(0|1)/(1)(.*)", line):
prin
我有以下类型的文本文件,
a b c d
-- -- -- --
1 ok device issue Some Action which
has to be taken which
is split into many lines
under d.
我尝试使用grep作为“问题”,但是只有第一行'd‘被打印出来。我得到的输出是:
1 ok device issue Some Action
在一个文件中,我有以下几行:
[Line 1] My Name is Adam;
[Line 2] <Blank Line>
[Line 3] My Name
[Line 4] is Adam Lee;
[Line 5] <Blank Line>
[Line 6] My
[Line 7] Name
[Line 8] is
[Line 9] Adam
[Line 10] Lee;
我的记号是:‘我的’名字‘’亚当‘,我知道它们会以';’结束。
下面是我如何用Python编写代码:
#Read the input file
try:
file_path =
假设我有一个txt文件,如下所示:
pattern 1
pattern 2
pattern 3
some information
pattern 1
pattern 2
pattern 3
some other information
.....
是否有方法同时匹配模式1、模式2和模式3(它们在不同的行中)?该文件包含其他内容。它在开头和结尾都有我不想要的东西。我只想提取上面描述的文件的一部分。
我正在使用shell变量编写sed调用。该变量包含具有文件名的路径名称:
sed "file name is '$variable'"
...
variable=/path/path/file.txt
问题是我不需要/path/path/部分。我只需要输出的file.txt部件。而且,我的路径是动态的,所以我猜我需要在字符串中搜索(不知怎么的)从结尾处的第一个斜杠。我该怎么做?
假设文件包含以下内容: good
good bad
next of baaaad
good 我想使用sed删除包含"bad“的行和这些行中的下一行。在上面的例子中,我想删除第2行和第3行。 我怎么才能做到这一点呢? 我试过了,但不起作用: ebra@him:/tmp$ cat iio | sed -e "s/\n.*bad.*\n.*//"
good
good bad
next of baaaad
good
在这里遇到了麻烦,我需要搜索一个模式,然后从一个单独的文件中删除它所包含的整个行。
例如,如果我在包含以下内容的文件中搜索"mike“
迈克:24
sally:12
克里斯:54
它将删除mike的整行
这是我到目前为止所用的脚本
clear
tput cup 2 5; echo "Enter pattern to search record(s) to be deleted: "
tput cup 2 55; read pattern
tput cup 4 5; printf "Following records
我有一个格式错误的CSV文件,它有两列: Text,Value
值要么为1,要么为0,但有些线条格式错误,跨越两行:
1. "This line is fine, but there are some that are not like this",0
2. "Another good line",1
4. "Oh, I'm so bad!!
5. I spanned two lines!",0
6. "Why did you break me? FileHelpers can't read two lines!!"
从著名的"sed一行“中找到下面的sed脚本来反转每行中的字符,并且我无法在脚本的//D中执行以下命令
sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
假设inital文件有两行开头,
apple
banana
在第一个命令之后,
/\n/!G
模式空间将是,
apple
banana
在每一行之后引入了一个新的行。代码标记移除这里的最后一行。所以它没有显示出来。在第二个命令之后,
s/\(.\)\(.*\n\)/&\2\1/
模式空间将是,
apple
pple
a
banana
anana
b
之后,第三