如何使用sed用文本替换空行?我尝试了一些早些时候发布的技巧,但它不起作用。有人能帮我吗?
示例文件内容-
Linux is an os.
Linux is opensource
Linux has various flavors like fedora,centos etc.
我想用像hello这样的文字来代替这些空白行。
有两个文件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
案文如下:
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:
...
我知道如何从文件中删除所有尾随空格,例如:
sed -i 's/ *$//' file
有没有办法做到这一点,而不是在只包含空格的行中?
精神上的某物:
sed -i 's/[a-zA-Z0-9;}{] *$/[a-zA-Z0-9;}{]/' file
^ keep the original characters
最好使用sed,但不是必须的。任何linux支持的解决方案都可以。
谢谢
对于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
我正在清理存储在文本文件中的数据。每一行的开头都是一个类别标签,后面跟着我想要清理的实际数据。在不同的子文件夹中有许多文本文件,所以我使用egrep将文件名传递给sed。
CON: the Unix and Linux question
SEM: eins, the zwei, drei
AUTH: , the
AFF: The holy seat
TTITLE: As we go, the Kuckuck comes too
现在,在以(SEM|AFF|CON)开头的每一行中,当(T|t)he[ ]*跟随(:|\,)时,我想替换它。也就是说,数据应该稍后看起来像
CON: Unix and
我试图用换行符替换每一行中的第一个空格。
例如
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。
使用awk,我希望得到以/acq/old/*开头的列。
file1
z y x / ACQ / old / a.zip y
z y t / ACQ / old / a.zip x
第四栏
file2
z y / ACQ / old / a.zip 10
z y / ACQ / old / a.zip 20
第三栏
..。
文件n
z y w t / ACQ / old / x.zip 100
z y f r / ACQ / old / w.zip 200
第五栏
我想做一次手术。
for myfile in ls *. txt
do
awk '??' $ myfile
我正在尝试创建一系列跨平台的SED替换(Linux和MacOS)。我在MacOS上得到了两个错误,因为下面的两个SED命令在Linux中的bash下工作得很好。我需要改变什么,以使他们接受BSD风格的SED?
注意:在下面的每个命令中,$sed_regex_sym被-r替换为Linux,-E替换为macOS。
sed -$sed_regex_sym "/.*[*]/!{/.*[|]{1}/s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]([_|\\\/])\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]/\3/g}"
我是Linux的新手,我还在学习命令。我想做的就是格式化我的.txt文件。
下面是我的文件的样子:
hello hello
goodbye goodbye
random random
example example
last last
我所要做的就是删除空格,并用分号替换它。
例如:
hello:hello
goodbye:goodbye
random:random
example:example
last:last
我不确定哪个命令可以完成这个任务,我很确定是grep还是awk。如果有人能帮我解决这个问题,那就太好了。谢谢,所有的帮助我们都很感激。
我有一个文本文件,其中包含以下文本。
/* 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
我的文件包含以下几行
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命令或任何其他命令都会给出这个输出?搜索特定的单词,如果这是对的话,然后删除那个词,然后删除该行中的所有单词。
我有一个文本文件,我想打印每一个字(多个字符)在新的行。如果一个单词由单个字符组成,则必须将其作为以下单词的一部分处理,并将其打印在新行上。如果它在两个单词之间,它必须跟随第二个单词。示例:
Unix & Linux Stack Exchange is a question and answer site for users of Linux,
输出
Unix
& Linux
Stack
Exchange
is
a question
and
answer
site
for
users
of
Linux