我有一个包含以下数据的文本文件:
AB-NJCFNJNVNE-802ac94f09314ee
AB-KJNCFVCNNJNWEJJ-e89ae688336716bb
AB-POJKKVCMMMMMJHHGG-9ae6b707a18eb1d03b83c3
AB-QWERTU-55c3375fb1ee8bcd8c491e24b2
我需要删除第二个连字符 (-
) 之前的数据并生成另一个具有以下输出的文本文件:
802ac94f09314ee
e89ae688336716bb
9ae6b707a18eb1d03b83c3
55c3375fb1ee8bcd8c491e24b2
我是 linux 的新手,尝试 sed
命令在过去的几个小时里都没有成功。如何使用 sed 或任何其他有用的命令(如 awk
)获得所需的输出?
最佳答案
您可以使用一个简单的cut
调用:
$ cat myfile.txt | cut -d"-" -f3- > myoutput.txt
编辑:
根据评论中的要求进行一些解释:
cut
根据给定的分隔符将文本字符串分解为字段。
-d
定义分隔符,在本例中为 -
。
-f
定义输出哪些字段。在这种情况下,我们要消除第二个连字符之前的所有内容,或者换句话说,返回第三个字段及以后的字段 (3-
)。
命令的其余部分只是通过管道输出。 cat
将文件放入cut
,然后将结果保存到输出文件。
关于regex - 删除linux中第二个重复指定字符前的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29817285/