shell命令 若存在某行则删除某个文件某行
时间: 2023-12-24 16:05:26 浏览: 85
Shell用sed命令删除特定行的方法
可以使用 `sed` 命令来实现删除文件中的某行。假设要删除 `file.txt` 文件中包含字符串 `target` 的行,可以使用以下命令:
```
sed -i '/target/d' file.txt
```
其中,`-i` 参数表示直接在原文件中进行修改,`/target/d` 表示删除包含字符串 `target` 的行。
如果要在某个条件下执行此操作,可以将上述命令包装为一个 shell 函数,例如:
```
function delete_line {
if grep -q "$1" "$2"; then
sed -i "/$1/d" "$2"
echo "Deleted lines containing \"$1\" in file \"$2\"."
else
echo "No lines containing \"$1\" in file \"$2\"."
fi
}
```
其中,`grep -q` 命令用于查找文件中是否存在包含指定字符串的行。如果存在,则调用 `sed` 命令进行删除,并输出提示信息。如果不存在,则输出另一种提示信息。可以通过调用 `delete_line` 函数来执行该操作。例如:
```
delete_line "target" "file.txt"
```
阅读全文