使用Sed删除文本文件中的第一个字符

时间:2017-11-07 19:18:09

标签: bash text sed

我有

形式的100多个巨大的文本文件
p 127210 3240293 23423234 3242323423
3242323 23423423 23423234 32423423 

我想转向

127210 3240293 23423234 3242323423
3242323 23423423 23423234 32423423

我尝试过使用

sed '1 s/^.//' input > output 

但是这给了我

 127210 3240293 23423234 3242323423
3242323 23423423 23423234 32423423

即。 p是一个烦人的空间。任何人都可以帮我修改sed表达式以获得没有空格的输出吗?

由于

4 个答案:

答案 0 :(得分:1)

关注awk可能对您有帮助。

awk '!/^[0-9]+/{$1="";$0=$0;$1=$1} 1'   Input_file

说明: 检查条件!/^[0-9]+/,它会检查一行是否从数字开始然后执行以下操作,然后我在这里取消第一个字段(因为你不想在这里输出p,所以我正在重新安排$0(当前行)并重新安排$1,以便它可以删除初始空间根据您的要求。

输出如下。

127210 3240293 23423234 3242323423
3242323 23423423 23423234 32423423

答案 1 :(得分:0)

sed 's/^[[:alpha:]]?//;s/^[[:space:]]*//' infile >outifle

应该这样做。

答案 2 :(得分:0)

sed 's/^. //' foo.txt > foo2.txt

希望有所帮助

答案 3 :(得分:0)

您可以在行的开头删除非数字字符:

sed 's/^[^0-9]*//' input > output