我正在尝试确定哪个应用程序正在使用某个端口并获取netstat -tlnp | grep <port> for Linux。
此命令返回以下输出:
(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:<port> 0.0.0.0:* LISTEN 3591/java
我只需要在结果中获得进程名和PID,即java3591。
做这件事
我的文件包含以下几行
File.txt
Unix is good
Linux and unix is different?
Linux is also good, then what about unix?
这里我要输出
(1st line blank)
Linix and
Linux is also good, then what about
在这里vi命令或任何其他命令都会给出这个输出?搜索特定的单词,如果这是对的话,然后删除那个词,然后删除该行中的所有单词。
每当我启动apache server(安装在EC2上)时,它都会显示带有"Amazon Linux AMI test Page“标题的测试页面。我想用类似于"Linux AMI - Started“这样的东西来更改措辞。(注意:我不想用我的文本替换整个页面,我想要相同的页面,但标题是"Linux AMI - Started“,而不是"Amazon Linux AMI Test Page”。我在下面试过了,但不幸的是它不起作用。
sed /Amazon Linux AMI测试页/Linux AMI - Started/g‘/var/wwww/html/index.
我在脚本中使用下面的代码,它应该匹配hosts.test中的"title随机Linux服务器“,并在2行匹配字符串之后将t3文件的文本插入到hosts.test中。但它带来了一些错误。
sed -i.bak '/^title AHS - zarriot CBTS random Linux Servers$/ {N;N; r t3}' hosts.test
有人能帮我吗?
我敢说,我主要是一个Windows用户(请不要太早地拒绝我),尽管我以前在Linux中玩过(主要是命令行)。我有一个进程,我必须偶尔进行一次,它本质上是搜索一个目录(和子目录)中的所有日志文件,以找到某个文件名,然后从所述日志文件中获取一些内容。
我的第一步是
grep -Ril <filename or Partial filename you are looking for> log/*.log
这样,我就有了日志文件名,并通过vi查找它发生的位置。为了澄清:grep正在查看所有日志文件,看看在-Ril之后的文件名是否在其中。
vi log/<log filename&g
这是我的样本文件
user@linux:~$ cat file.txt
Line 1
Line 2
Line 3
Line 4
Line 5
user@linux:~$
我可以用grep -A2 'e 2' file.txt打印第2-4行。
user@linux:~$ grep -A2 'e 2' file.txt
Line 2
Line 3
Line 4
user@linux:~$
我也可以用grep -n打印出行号。
user@linux:~$ grep -nA2 'e 2' file.txt
2:Line 2
3-Line 3
4
这在任何Linux上都能很好地工作:
$ echo foo bar | sed -n '/foo/{/bar/{;p;}}'
foo bar
但在OSX古老的BSD变体上却失败了:
❯ echo foo bar | sed -n '/foo/{/bar/{;p;}}'
sed: 1: "/foo/{/bar/{;p;}}": extra characters at the end of } command
我是不是错过了什么魔法咒语?有办法用便携的方式写吗?
我不想恢复到grep | grep | grep命令的管道。
更新:低代表在这里,
学习sed,我使用了一个实时编辑器,这样我就可以试验/看到变化。
sed -nf '/START FROM HERE/,${/NEXTLINE/{n;p;q}}'
当我尝试运行相同的代码时,在Linux上,当我以./xxx.sed text0.txt身份执行时,我收到错误:没有这样的文件或目录
我已经尝试了一些方法,但我不确定如何像这样使用sed。