在Linux(Cento OS)中,我有一个文件,其中包含一些我想删除的附加信息。我想生成一个包含所有字符的新文件,直到第一个|
。
该文件包含以下信息:
ALFA12345|7890
Beta0-XPTO-2|30452|90 385|29
ZETA2334423 435; 2|2|90dd5|dddd29|dqe3
预期的输出将是:
ALFA12345
Beta0 XPTO-2
ZETA2334423 435; 2
删除字符|
(包括)之后的所有字符。
对于阅读File1
并根据此特定要求生成File2
的脚本的任何建议?
答案 0 :(得分:5)
尝试
cut -d'|' -f1 oldfile > newfile
答案 1 :(得分:3)
而且,为了完善“大3”,这里是awk
版本:
awk -F\| '{print $1}' in.dat
答案 2 :(得分:1)
您可以使用简单的sed脚本。
sed 's/^\([^|]*\).*/\1/g' in.dat
ALFA12345
Beta0-XPTO-2
ZETA2334423 435; 2
重定向到文件以捕获输出。
sed 's/^\([^|]*\).*/\1/g' in.dat > out.dat
答案 3 :(得分:0)
使用grep
:
$ grep -o '^[^|]*' file1
ALFA12345
Beta0-XPTO-2
ZETA2334423 435; 2
$ grep -o '^[^|]*' file1 > file2