0

我有数千个 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
4

1 回答 1

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}"

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

   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
于 2012-05-10T09:10:36.570 回答