如何使用sed用文本替换空行?我尝试了一些早些时候发布的技巧,但它不起作用。有人能帮我吗?
示例文件内容-
Linux is an os.
Linux is opensource
Linux has various flavors like fedora,centos etc.
我想用像hello这样的文字来代替这些空白行。
案文如下:
We will now present the Linux ls command
... here description of ls
We will now present the Linux cd command
... here description of cd
... more description
Done
下面的sed替换正则表达式应用于文本。
sed 's/.*Linux \(.*\) .*/\1:/' ex2.txt
,它提供以下输出
ls:
... here description of ls
cd:
...
我的文件包含以下几行
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命令或任何其他命令都会给出这个输出?搜索特定的单词,如果这是对的话,然后删除那个词,然后删除该行中的所有单词。
对于grep特定的关键字和它的内容,我有一个问题。这是示例文件,实际文件比这个文件大。
示例
user@linux:~$ cat url.txt
abcrandomtextdef another random text blablabla
another random iwantthis text abcrandomtextdef url=https://www.google.com ghirandomtextjkl
ghirandomtextjkl another random text yadayada
wxyz iwantthis abcdef url=yahoo.com yaday
我对Linux世界非常陌生,希望在下面执行。
The process of writing a job description requires having a clear understanding of the job’s duties and responsibilities.
The job posting should also include a concise picture of the skills required
我有一个文本文件,其中包含以下文本。
/* a comment line in a C program */
printf("It is /* NOT a comment line */\n");
x = 5; /* This is an assignment, not a comment line */
[TAB][SPACE] /* another empty comment line here */
/* another weird line, but not a comment line */ y = 0;
我希望删除以/*开头的行,以*/结尾的行仅使用linu
有谁知道如何在Linux中通过sed删除下面字符串中的模式"@TechCrunch:“?
str="0,RT @TechCrunch: The Tyranny Of Government And Our Duty Of Confidentiality As Bloggers."
因此,期望的输出将是:
"0,RT The Tyranny Of Government And Our Duty Of Confidentiality As Bloggers."
我试过很多方法,但都没成功,例如:
echo $str | sed 's/@[a-zA-Z]
我正在Linux上工作,我正在运行以下程序:
$ ls -t postgresq*.log | head -n1 | xargs grep "ALTER USER"
< pg_user 2021-07-15 05:03:41.609 EDT > LOG: statement: ALTER USER username WITH ENCRYPTED PASSWORD 'JUly@#12' valid until '2021-07-20';
但是,我只想在下面的字符串中进行grep:
ALTER USER username WITH
我正在两台服务器之间迁移一些数据。数据保存在每台服务器上相同的文件夹结构中。
一旦移动了数据,我想要更新所有受影响的Linux机器上的fstab文件。我有一个bash脚本,它在服务器之间rsync数据,然后登录到列表中的每台机器,并使用sed用新的IP地址更新fstab。
sed "s/\(172.16.0.30\)\(.*\)\(${share}\)\(.*\)/172.16.0.35\2\3\4/"
这在过去工作得很好,但是这次我迁移的文件夹的名称与其他几个文件夹非常相似,假设$share是'home':
home
home-old
home-ancient
我试图用换行符替换每一行中的第一个空格。
例如
123 there is a monkey
567 there is also a tiger
会变成
123
there is a monkey
567
there is also a tiger
我试着用命令来做这件事:
sed -e 's/^\s\+/\n/g' output.txt > new.txt
没有运气。我也对linux中允许我这样做的任何其他程序开放,比如awk、perl或bash。
有两个文件file.txt和file1.txt
$ cat file.txt
Linux
Administration
Scripting
Tips and Tricks
Windows
Administration
Database
Administration of Oracle
Administration of Mysql
Security
Network
Online\
Security
Productivity\
Google Search\
Tips
"Web Based Time Tracking,
Web Based Todo list and
Reduce Key
我想在一行(多行)的特定单词之间替换字符。例如:
first second third | first line
first second third | second line
first second third | third line
first second third | forth line
....
我想在linux中替换第三和第一/第二/第三/第四etc...using、sed或vi之间的字符。
如果这个问题已经回答了,你能给我提供链接吗?谢谢!
我想根据以下要求将一个平面数据文件转换为一个新文件:
1)将已分隔的制表符更改为带分隔符的“\”。
2)删除每个“列”上的任何前导和尾随空间。
3)有些列是空的,我想保持为空。例如,A++/B.(第2列为空)。
示例:
原始文件(test.dat)有一行由制表符分隔的数据,共有7列,"NY“之后的2列为空。
A New York NY Meal - Seafood Grocery Department
请注意,在某些字段中有前导/尾随空间:
(" A ", "Meal - Seafood ", &
将此视为文件:
M ../.gitlab-ci.yml
M ../force-app/main/ui/classes/test.cls
A ../pmd/get_diff_branches.sh
?? ../assets/server.key
?? ./
我正在逐行删除所有的额外字符如下:
sed /^D/d diff.txt | sed 's/^..//' | sed /^force-app/p | sed /^force-app\\/package\.xml/d | sed 's/.*\ ->\ //' > temp.txt
这样做之后,文
我试图删除字符串中的最后一个空格。
输入如下:
"hi guys how you doing"
我目前正在做的事情:
$ echo "hi guys how you doing" | sed 's/ \+//1'
当前产出:
"higuys how you doing"
预期产出:
"hi guys how youdoing"
这个字符串--例如,在我的应用程序中,我不知道空格的确切位置,我只知道它在最后一个空白位置。
您知道它是否存在不使用rev命令向后搜索字符串的任何方法吗?
我有一个文本文件,里面有很多带字母间距的行,例如
cat test.txt
Some word here: T h e Q u i c k B r o w n F o x J u m p s O v e r T h e L a z y D o g
Some doggerel: J a c k A n d J i l l W e n t U p T h e H i l l
我使用Linux中的一些命令行工具,要求将一些正则表达式应用于这个文本文件,以删除字符之间的空格。
cat result.txt
Some word here: The Quick Brown Fox Jumps Over T
这里有一个正则表达式/ sed专家的问题:我需要美化一些c++代码。代码中到处都是具有不同类型间距的赋值操作符的各种版本。即
a=b
a =b
a= B
a = b
a= b
A = B. // the correct format needed, and so must be ignored by SED
在=周围应该只有一个空格。如果发现更多,就必须移除额外的部分。
我需要一个脚本,它将扫描文件夹和子文件夹中的所有文件,并根据需要进行搜索和替换。
有一些变化,如a+=b等。
我在OsX上运行,但有linux和windows机器可用。
非常感激的帮助。
我在Linux中有以下文本文件,名为"matricole.testo“:
paolo rossi 1988
giovanna d'arco 1945
francesco totti 1988
francesco gabbani 1967
andrea presti 1957
franco taoli 1945
giuseppe verdi 1987
我的目标是在文件的前7行替换以'88‘结尾的所有单词(而不是整行),结果如下(我认为):
paolo rossi
giovanna d'arco 1945
francesco totti
francesco ga
我有一个场景,其中有一个文本文件,我想用一个特定的分隔符(比如:)来分隔文本文件中的行值。
我已经通过将SQL查询的输出存储到文本文件中来生成文本文件。
文本文件的内容是
field 1.2 xxxx
field 2.7.1 xxxx
field 1.9 xxxx
field 1.4 xxxx
field 2.7.1 xxxx
我试过这个:
cat /tmp/file.txt | sed 's/ /:/g'
但是由于行间的间距不一致,这对我不起作用。
我该怎么做呢?我在这里期望的输出是这样的
field :1.2 :xxxx
field :