2

我有一个包含文件名的文件。

file1
file2
file3
file4

我想创建一个在前面添加'rm'的shell脚本

rm file1
rm file2
rm file3
rm file4

如何在文件名前面附加 rm?

4

3 回答 3

5

您可以通过多种方式做到这一点 - sed, vim, perl, awk.

或者您可以xargs像这样简单地使用:

xargs rm < filelist

如果您真的坚持要编辑filelist,请使用sed

sed 's/^/rm /g' filelist > newscript

(这意味着找到行^首并将其替换rm为每一行/g)。

您甚至可以filelist使用以下命令就地编辑sed -i

sed -i 's/^/rm /g' filelist
于 2013-02-26T07:42:02.720 回答
1

我认为 mvp 的答案是最好的,但是如果您正在谈论当前文件列表更改为rm在每个文件名之前插入的 shell 脚本,您可以使用任何支持查找和替换正则表达式的良好文本编辑器来简单地执行此操作。

搜索词 :^(.)

替换 :rm \1

Vi 单线:

:%s/^/rm /
于 2013-02-26T09:45:42.687 回答
0

另一种方法是使用简单的 shell 脚本。

#!/bin/sh

FILE=$1

while read line
do
  echo "Removing $line"
  rm $line
done < $FILE

然后你可以运行它sh multirm.sh filelist

如果你想简单地添加rm到文件中,你可以使用 awk 。

awk '{ print "rm", $1" }' filelist

于 2013-02-26T07:57:03.367 回答