我有一个包含一些数据的文件,如下例所示:
data1: it is my data
data2: some more data
data3: even some more data
Run Code Online (Sandbox Code Playgroud)
我想要的是另一个文件中的以下输出:
it is my data
some more data
even some more data
Run Code Online (Sandbox Code Playgroud)
请指导我怎么做!
这应该有效:
sed -i .bak 's/[^:]*: *//' file
Run Code Online (Sandbox Code Playgroud)
说明:该-i .bak
会编辑到位的文件,并创建一个名为原始的备份filename.bak
。s/pat/replacement/
手段代替pat
用replacement
。[^:]*: *
表示匹配最长的非:
字符字符串,然后是:
一个或多个空格。最终的结果是它将删除所有内容,直到第一个:
和后面的空格。
这种方法的优点是可以使用data:
orfoo:
或其他方法,并且如果您:
在同一行上有多个,也可以使用。例如,它可以处理这个:
data: a line that contains : a colon!
Run Code Online (Sandbox Code Playgroud)
如果您使用,这非常简单awk
:
awk -F ': ' '{for (i=2; i<=NF; i++) print $i}' file_name > new_file_name
Run Code Online (Sandbox Code Playgroud)
每行在更多字段中使用': '
作为分隔符分隔,并打印除第一个字段之外的所有内容。输出被重定向到new_file_name
.
归档时间: |
|
查看次数: |
1831 次 |
最近记录: |