我有一个文件,其中包含一堆像这样的行blabla-any-characters**,**numbers-and-characters我希望保留第一个逗号之前的所有内容,并删除其他所有内容。有没有关于如何使用awk或sed完成这项工作的提示?谢谢
blabla-any-characters**,**numbers-and-characters
ffx8fchx1#
你可以这样使用sed:
sed -i.bak 's/,.*$//' file
,.*$将匹配第一个逗号之后的任何内容,并将其替换为空字符串。-i.bak用于sed中的内联编辑。
,.*$
-i.bak
6rqinv9w2#
试试这个cut:
cut -d ',' -f 1 file
hsvhsicv3#
对于awk,您可以用途:
awk
awk -F"," '{print $1}' file
它将使用逗号分隔每条记录,然后只打印第一个元素。
ruoxqz4g4#
使用awk可以相对容易地做到这一点。
$ cat test.txt blabla-any-characters**,**numbers-and-characters john,smith hello,world $ awk -F',' '{print $1}' test.txt blabla-any-characters** john hello
4条答案
按热度按时间ffx8fchx1#
你可以这样使用sed:
,.*$
将匹配第一个逗号之后的任何内容,并将其替换为空字符串。-i.bak
用于sed中的内联编辑。6rqinv9w2#
试试这个cut:
hsvhsicv3#
对于
awk
,您可以用途:它将使用逗号分隔每条记录,然后只打印第一个元素。
ruoxqz4g4#
使用
awk
可以相对容易地做到这一点。