如何删除一行中特定字符之前的文本字符?
我想删除第一个字母“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!'