我正在尝试替换文件中出现的第一个字符串。例如,试图用linux取代第一个foo
sample.txt
Hi foo bar
This is again foo bar.
命令:sed '0,/foo/s//linux/' sample.txt
上述命令的实际输出(基本不变)
Hi foo bar
This is again foo bar.
我的预期产出如下
Hi linux bar
This is again foo bar.
这里有人能帮忙吗?
这是我的样本文件
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
Aug 12 01:30:26 server.example.com sshd[19486]: Failed password for root from X.X.X.X port 50528 ssh2
Aug 12 01:30:26 server.example.com sshd[19486]: Received disconnect from X.X.X.X port 50528:11: Bye Bye [preauth]
Aug 12 01:30:26 server.example.com sshd[19486]: Disconnected from X.X.X.X port
我是Linux的新手,我还在学习命令。我想做的就是格式化我的.txt文件。
下面是我的文件的样子:
hello hello
goodbye goodbye
random random
example example
last last
我所要做的就是删除空格,并用分号替换它。
例如:
hello:hello
goodbye:goodbye
random:random
example:example
last:last
我不确定哪个命令可以完成这个任务,我很确定是grep还是awk。如果有人能帮我解决这个问题,那就太好了。谢谢,所有的帮助我们都很感激。
编辑以删除不必要地使用"cat“命令.
我有一个Linux脚本,它从CSV文件中读取数据,并根据文件中每一行的最后一列执行操作。
输入文件具有以下基本格式:
asdf,foo
1234,foo
qwerty,bar
zxcv,baz
7890,bar
最初的Linux脚本如下所示:
sed s/.*,//g $1 | sort -u | while read item
do
# Do stuff with $item
done
我很难将Linux脚本转换为在Windows环境中运行,使用GnuWin32版本的cat、sed和sort。到目前为止,我尝试过的是:
for /f
在linux中,我们可以运行sort命令来对文件内容进行排序,但在我的示例中,我有以下文件(THANKS.txt):
These people have contributed to OSN Envoy. We always try to keep this list updated and correct.
If you notice that your name is not listed here, then feel free to contact us.
Ar Rakin
Peter Williamson
David Brook
Bill Natt
此文件包含软件项目贡献者的列表
我想在Linux上在0001和9999之间生成一个数字,将它分成两个变量,然后按如下方式打印:
I will go for 00 and 01
我在Linux上使用bash,并希望生成这个输出(我假设我可以在一起使用seq或echo?):
示例;从数字0001到0005,结果如下:
I will go for 00 and 01
I will go for 00 and 02
I will go for 00 and 03
I will go for 00 and 04
I will go for 00 and 05
我正在编写一个在循环上运行的程序,我需要增加作为变量传入的时间毫秒。是用来计算时间戳的。
我已经了解了如何在这样的属性文件中更改属性:
sed -i "/exampleKey=/ s/=.*/=newExampleValue1/" test.properties
但在此之前,我希望能够获得currentExampleValue1并在其上执行加法。
就像这样:
exampleKey=1000
//Get Current value here (1000)
sed -i "/exampleKey=/ s/=.*/= (current value + 500) /"
在Linux中,我有一个字符串,并希望使用sed将字符串中的一个数字附加到它的前面,并在后面加上一个冒号。例如,我有一个字符串
word word word 01 word word 02 word word word word 03 word
并希望
03:word word word 01 word word 02 word word word word 03 word
我可以用
sed 's/^/:/'
要将冒号附加到前面,但对于每个单独的字符串,我也希望将03位置中的数字复制到前面。
如何使用linux命令将.txt文件中的分隔符从当前逗号(,)更改为分号(;)?
这是我的ME_1384_DataWarehouse_*.txt文件:
Data Warehouse,ME_1384,Budget for HW/SVC,13/05/2022,10,9999,13/05/2022,27,08,27,08
Data Warehouse,ME_1384,Budget for HW/SVC,09/05/2022,10,9999,09/05/2022,45,58,45,58
Data Warehouse,ME_1384,Budget for HW/SVC,25/05/2022,10,999
我只需要替换选定的250个erlang文件(扩展名为.erl)的前4个标题行,但directory+subdirectories中总共有400个erlang文件,我需要避免修改不需要更改的文件。我有要修改的文件名列表,但不知道如何让我的linux命令使用它们。
sed -i '1s#.*#%% This Source Code Form is subject to the terms of the Mozilla Public#' *.erl
sed -i '2s#.*#%% License, v. 2.0. If a copy of the MPL was not d