Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix:删除文件中的文本匹配模式_Unix - Fatal编程技术网

Unix:删除文件中的文本匹配模式

Unix:删除文件中的文本匹配模式,unix,Unix,我有一个数据表,我想以.csv格式导出。该文件当前看起来如下所示: 60:1(概率=0.0001,累计=0.0001) 63:2(概率=0.0001,累计=0.0002) 64:1(概率=0.0001,累计=0.0002) 我只想保留每行的第一个字符(64:1),并删除括号之间的文本。是否有删除每行文本的命令???您可以使用sed $ sed -E "s/ \(.+//g" input.txt 60: 1 63: 2 64: 1 -E设置sed以使用扩展regexp(通常更方便)。 实际表达式

我有一个数据表,我想以.csv格式导出。该文件当前看起来如下所示:

60:1(概率=0.0001,累计=0.0001)

63:2(概率=0.0001,累计=0.0002)

64:1(概率=0.0001,累计=0.0002)


我只想保留每行的第一个字符(64:1),并删除括号之间的文本。是否有删除每行文本的命令???

您可以使用
sed

$ sed -E "s/ \(.+//g" input.txt
60: 1
63: 2
64: 1
-E
设置
sed
以使用扩展regexp(通常更方便)。 实际表达式是一个
s
替换,因此
sed
查看每一行,查找与正则表达式
\(.+
)匹配的内容,即一个空格后跟一个文字括号,然后是任何内容,直到行的末尾,并将其替换为任何内容。