我有成千上万的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
答案 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