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

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

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

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

例子:

null###F01|54646466|00K4234001|IFD|1990101
null###F02|54646499|00K4234001|TFS|1990101
null###F03|03232432|00RWEREW01|ZAI|1990101

结果一定是

F01|54646466|00K4234001|IFD|1990101
F02|54646499|00K4234001|TFS|1990101
F03|03232432|00RWEREW01|ZAI|1990101

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

答案1

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

cut -d\# -f4- <<\IN
null###F01|54646466|00K4234001|IFD|1990101
null###F02|54646499|00K4234001|TFS|1990101
null###F03|03232432|00RWEREW01|ZAI|1990101
IN

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

输出

F01|54646466|00K4234001|IFD|1990101
F02|54646499|00K4234001|TFS|1990101
F03|03232432|00RWEREW01|ZAI|1990101

答案2

grep -o 'F.*'

或(我们需要超过 30 个字符)

perl -pe 's!.*?F!F!'

相关内容