如何在特定字符之前删除一行中的文本字符?

Mig*_*gel 1 sed awk text-processing

如何在特定字符之前删除一行中的文本字符?

我想删除第一个字母“F”左边的字符

例子:

null###F01|54646466|00K4234001|IFD|1990101
null###F02|54646499|00K4234001|TFS|1990101
null###F03|03232432|00RWEREW01|ZAI|1990101
Run Code Online (Sandbox Code Playgroud)

结果必须是

F01|54646466|00K4234001|IFD|1990101
F02|54646499|00K4234001|TFS|1990101
F03|03232432|00RWEREW01|ZAI|1990101
Run Code Online (Sandbox Code Playgroud)

我正在尝试,awk -F"F" '{print "F"$2}'但它不起作用。

mik*_*erv 7

如果输入的所有看起来像这样,那么最有效的解决方案是最有可能的:

cut -d\# -f4- <<\IN
null###F01|54646466|00K4234001|IFD|1990101
null###F02|54646499|00K4234001|TFS|1990101
null###F03|03232432|00RWEREW01|ZAI|1990101
IN
Run Code Online (Sandbox Code Playgroud)

我使用上面的 heredocument 来演示,但您可以使用cut -d\# -f4- <infile >outfile. 您也可以使用cut -c8- <in >out (老实说,这可能实际上是最有效的方法)。无论哪种方式...

输出

cut -d\# -f4- <<\IN
null###F01|54646466|00K4234001|IFD|1990101
null###F02|54646499|00K4234001|TFS|1990101
null###F03|03232432|00RWEREW01|ZAI|1990101
IN
Run Code Online (Sandbox Code Playgroud)