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
Regex 使用正则表达式和sed(unix工具)反转替代_Regex_Unix_Sed - Fatal编程技术网

Regex 使用正则表达式和sed(unix工具)反转替代

Regex 使用正则表达式和sed(unix工具)反转替代,regex,unix,sed,Regex,Unix,Sed,我有一列tt1234567格式的数据,但是有些行不符合这个标准,我想用破折号(-)来代替它。这最好只需要使用unix工具来完成 目前我已使用sed-e的/^(tt)/-' 但很明显,这会用破折号替换从tt开始的所有内容,我可以执行相反的命令吗?很可能您正在查找以下内容: sed '/^tt/!s/.*/-/' file 例如: kent$ cat f tt123456 ;alsjf tt123456 kent$ sed '/^tt/!s/.*/-/' f tt123456 - tt123

我有一列tt1234567格式的数据,但是有些行不符合这个标准,我想用破折号(-)来代替它。这最好只需要使用unix工具来完成

目前我已使用sed-e的/^(tt)/-'


但很明显,这会用破折号替换从tt开始的所有内容,我可以执行相反的命令吗?

很可能您正在查找以下内容:

sed '/^tt/!s/.*/-/' file
例如:

kent$  cat f
tt123456
;alsjf
tt123456

kent$  sed '/^tt/!s/.*/-/' f
tt123456
-
tt123456

显示输入和预期输出