将变量字符串移动到顶部的自动方式

时间:2012-05-10 08:53:43

标签: automation

我有成千上万的HTML文件,每个文件都有一个以相同字符开头但结尾不同的字符串。我想要一个自动方法将每个文件的字符串移动到顶行。以下是问题的布局:

001.html source:
lksjds
65:99430
lksdmls

002.html source:
kjsndsk
65:09i

003.html source:
knknknkn
sderokfeokfr
65:3498u
lksdmlsre

现在,我希望它们看起来像这样[找到65:*用正则表达式然后将它移到顶部]:

001.html source:
65:99430
lksjds
lksdmls

002.html source:
65:09i
kjsndsk

003.html source:
65:3498u
knknknkn
sderokfeokfr
lksdmlsre

1 个答案:

答案 0 :(得分:0)

这是一个使用grep在Unix上的bash shell中使用文件003.html的解决方案:

   FILE="003.html"
   PATTERN="^65:.*"
   TEMP_FILE="${RANDOM}"

   grep --color=never "${PATTERN}" "${FILE}" > "${TEMP_FILE}"
   grep -v "${PATTERN}" "${FILE}" >> "$TEMP_FILE"
   mv "${TEMP_FILE}" "${FILE}"

这可以是一行的,并放置在每个Html文件上迭代的for循环内,如下所示:

   for FILE in $(ls *.html); do PATTERN="^65:.*"; TEMP_FILE="${RANDOM}"; grep --color=never "${PATTERN}" "${FILE}" > "${TEMP_FILE}" ; grep -v "${PATTERN}" "${FILE}" >> "$TEMP_FILE"; mv "${TEMP_FILE}" "${FILE}"; done