grep -- 删除分隔符标记后的文本

grep -- 删除分隔符标记后的文本

我有一个文件,其中我需要消除;每一行第一行之后的所有内容。

所以像这样的文件:

sdfsdsdf;
fsdfsddf;sdfsd;

会导致这样的结果:

sdfsdsdf
fsdfsddf

我已经调查过grepsed。我希望得到包含这些命令中的任何一个的答案。

答案1

另一种选择是使用cut命令

cat a.file | cut -d';' -f1

答案2

sed在这种情况下,可能比 awk 或 perl 最简单、更快:

sed 's/^\([^;][^;]*\);.*$/\1/' some_file_name

答案3

我通常用于awk这样的事情:

cat a.file | awk -F=";" '{ print $1 }'

这将获取文件的每一行并在分隔符之前打印第一组-F

答案4

这是使用 GNU 的一种方法grep

grep -Po "^[^;]+(?=;?)" filename

相关内容