例:如果*在:第二次出现之后出现,我想删除下面的两行。
/path/:456: * This entire line needs to be deleted
/auto/myfolder/:999 : * This entire line should get deleted
注意:*应该是第二个:之后的第一个字符,忽略空格。
有人能帮助我使用sed或grep在shell脚本中工作吗?
非常感谢。
我有一个文本文件,它基本上是一个日志文件。因为有以时间戳和LogID开头的日志,格式为-
timestamp=2014-08-18 23:59:48.315|logId=22fef71f-979a-46aa-81b5-432d34130c34| ( followed by some text )
timestamp=2014-08-18 22:59:48.315|logId=22fef71f-979b-46aa-81b5-432d34130htf| ( followed by some text )
我需要去掉时间戳,得到剩下的部分。
在这种情况下如何使用sed命令。
我知道如何使用剪切命令从行中选择字段。例如,考虑到以下数据:
a,b,c,d,e
f,g,h,i,j
k,l,m,n,o
这个命令:
cut -d, -f2 # returns the second field of the input line
返回:
b
g
l
我的问题是:如何从结尾选择第二个字段计数?在前面的示例中,结果是:
d
i
n
我正在尝试替换文件行之间的模式。
具体来说,我想在大文件和多个文件中用,\n &替换, &\n。这实际上将符号&移到前一行。这在CTR+H中非常容易,但我发现使用sed很困难。
因此,初始文件的形式如下:
A +,
& B -,
& C ),
& D +,
& E (,
& F *,
# & G -,
& H +,
& I (,
& J +,
K ?,
所需的输出形式是:
A +, &
输入:
Proc Natl Acad Sci U S A. 2014 May 27;111(21):7819-24. doi: 10.1073/pnas.1400586111. Epub 2014 May 13.
期望产出:
Proc Natl Acad Sci U S A. 2014 May 27;111(21):7819-24.
我试过的是:
sed 's/doi: *//'
我想创建一个bash脚本来更改应用程序的配置文件。该脚本将读取一个变量,并将我想要更改的设置的值替换为该变量的值。
#!/bin/bash
mysqlurlenv1="jdbc:mysl://xx.xx.xx.xx:3306
mysqlurlenv2="jdbc:mysl://xx.xx.xx.xz:3306
configFile=app.conf
pattern=$1
case "$pattern" in
1)
sed -i.bak "s/^\(mysql.db.url =\).*/\1 ${mysqldburl_
在bash脚本中,我试图替换以新文本开头的注释行。sed失败,告诉我散列字符是Unknown option to s。
sed -i -e "s/#a line/the new line with some $varname/g" "path/to/filename"
我在#上试过一个反斜杠,但没有结果。如何在sed中使用散列,是的,我必须使用双引号来管理变量use。
我有一个像这样的文件
one two three [four five] six seven [eight nine ten yeah]
new york [los angeles houston]
usa canada [mexico costa rica] brasil [yes no]
我想保留最后一对[]中的前两个单词:
eight nine
los angeles
yes no
我试过几个命令,但都不起作用。有人能给我一些建议吗?谢谢!