我有一个文本文件,其中有一些下面的数据:
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-
)。
其余的命令只是输出输出。 将文件cut
,然后将结果保存到输出文件。
或者,使用sed
:
cat myfile.txt | sed -e 's/^.\+-//'