我有一个文件,其中我需要消除;
每一行第一行之后的所有内容。
所以像这样的文件:
sdfsdsdf;
fsdfsddf;sdfsd;
会导致这样的结果:
sdfsdsdf
fsdfsddf
我已经调查过grep
和sed
。我希望得到包含这些命令中的任何一个的答案。
答案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