假设在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列)
做这件事最好的方法是什么?
我想从文件中提取不包含特定模式的所有行。
pattern="tmp/[...]/include/linux/*.h"
file contains:
17937;/home/[...]/tmp/[...]/include/linux/header.h;484;16;[Other text here]
37417;/home/[...]/tmp/[...]/src/file.cpp;1851;41;[Other text here]
17945;/home/[...]/tmp/[...]/include/linux/*/header.h;484;16;[Other text her
使用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
我想让它工作,这样当没有匹配的时候,它就不会输出任何东西。
我以./somescript.sh的形式在交互式shell中执行bash命令
它给出的输出
OS platform is: linux2
killall agent
agent: no process killed
第三行来自stderr。
但是当我在子subshell中执行时
var=$('./somescript.sh' 2>&1)
agent: no process killed
OS platform is: linux2
killall agent
为什么代理:没有被杀死的进程是打印在第一行现在?如何使两者保持一致呢?
编辑:但是,当我这样做的时候,va
我是Linux命令的新手,我正在学习sort命令。
输入文件如下:
a 1
b 2
a 0
我想将第一列作为排序键,并使用'-u‘选项删除行"a 0",因为它与第一行具有相同的键,命令手册中说'-u’将只保留第一个等量运行。
当我使用命令sort -k 1 -u text时,结果是:
a 0
a 1
b 0
然而,当我使用命令sort -k 1, 1 -u text时,输出是:
a 1
b 2
有人能告诉我这两个命令的区别吗?
我需要将一个文件(file1)中指定的字符串列表与另一个文件(file2)进行比较,然后使用linux只报告包含字符串的列的匹配部分和另一个列
下面是一个示例:
包含要搜索的字符串的文件-file 1如下所示
Name
Laura
Caroline
Chan
Carol
要搜索的文件- file2:
Name Title Salary
George Research fellow 48000
Vanesse, Laura , Robert Graduate
我试图编写一个相当简洁的sed脚本,仅在文件的前两行为空时才删除它们,因此下面的文件如下:
> cat myfile.in
Line 3
Line 5
将产生一个三行输出文件:
> cat myfile.out
Line 3
Line 5
这涉及到合并行范围和模式匹配,我只是找不到任何这样的例子。如果有人能建议并同样(或更多)考虑Perl替代方案,我也会感到兴奋。非常感谢。
脚注
我应该补充一点,我尝试了1,2{/^$/d},它在Linux上工作得非常好,但是在AIX中我得到了:
sed: 0602-404 Function 1,2{/^$/d} cannot be par
我有一个ascii文件,内容如下:
START
this is my home
this is my pc
START
this is my linux
this is my awk
this is nice
START
this is a single line
START
this is my work
this is the end
this line has to be read
START
...
...
START
.
.
.
.
我希望读取开始行和空行之间的行,并以分隔格式打印输出。产出应采用以下格式:
this is my home;this is my pc
thi