我有一个文本文件,其中包含以下文本。
/* 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
我正在清理存储在文本文件中的数据。每一行的开头都是一个类别标签,后面跟着我想要清理的实际数据。在不同的子文件夹中有许多文本文件,所以我使用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
我真的不熟悉编码/linux我想找一行包含XX Number 1.2.3.4或XX Number 1.2.-.-的代码
最初,我只是通过执行以下操作来进行硬编码
grep "XX Number" filename | cut -c 15-
但是后来我意识到有一些文件在他们的行中有单词"XX Number“,这会搞砸的。
下面是一个示例(请注意,多个空格是字面制表符):
XX Number 1.2.3.4
XX Number 1.2.-.-
Another line with XX Number that shouldn'
在sed中插入制表符的正确方式是什么?我使用sed将标题行插入到流中。我可以使用正则表达式替换一些字符,然后放入制表符中,但是有没有更好的方法呢?
例如,假设我有:
some_command | sed '1itextTABtext'
我希望第一行看起来像这样(文本用制表符分隔):
text text
我尝试用"\t“、"\x09”、“”(制表符本身)替换上述命令中的制表符。我尝试过使用双引号和不使用双引号,但我无法让sed在文本之间插入制表符。
我正试图在SLES9中做到这一点。
我正在学习sed,并已接近于为以下问题找到解决方案:
打印所有只有一个单词名称的大洋洲国家的行(例如:打印澳大利亚,而不是所罗门群岛)
命令:
sed -n -e 's/\(.*\)\(,OC,\)\(.*\)/\1/p' countries
输出:
American Samoa
Australia
Cook Islands
Fiji
Micronesia
Guam
Kiribati
Marshall Islands
Northern Mariana Islands
New Caledonia
Norfolk Island
Nauru
Niue
New Zealand
我试图用换行符替换每一行中的第一个空格。
例如
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。
我希望从选项卡分隔的文件中删除某些行,并将输出写入新文件。
a b c 2017-09-20
a b c 2017-09-19
es fda d 2017-09-20
es fda d 2017-09-19
第4列是日期,基本上我只想保留第4列为"2017-09-19“的行(保留第2和第4行)并写入新文件。新文件应具有与原始文件相同的格式。
如何为本例编写linux命令?
备注:搜索条件应该在第四个字段上,因为我在实际数据中有其他字段,并且可能具有与第四个字段相同的值。