linux

linux查找替换能替换文件类型吗

小樊
81
2024-12-28 11:24:54
栏目: 智能运维

是的,Linux中的findsed命令可以用来查找并替换特定类型的文件

find . -type f -name "*.txt" -exec sed -i 's/old_text/new_text/g' {} \;

这个命令的解释如下:

  1. find .:从当前目录开始查找。
  2. -type f:只查找文件(不包括目录)。
  3. -name "*.txt":查找以.txt结尾的文件。
  4. -exec:对找到的每个文件执行指定的命令。
  5. sed -i 's/old_text/new_text/g' {} \;:使用sed命令将文件中的old_text替换为new_text{}表示找到的文件,\;表示命令的结束。

请注意,这个命令会直接修改找到的文件。如果你想保留原始文件并在新文件中创建更改,可以使用以下命令:

find . -type f -name "*.txt" -exec sh -c 'sed "s/old_text/new_text/g" "{}" > tmpfile && mv tmpfile "{}"' \;

这个命令的解释如下:

  1. sh -c '...':使用shell执行内部的命令。
  2. sed "s/old_text/new_text/g" "{}":使用sed命令将文件中的old_text替换为new_text,并将结果输出到一个临时文件(tmpfile)。
  3. mv tmpfile "{}":将临时文件重命名为原始文件名。

0
看了该问题的人还看了