1

我有一个文件cache.md,它的开头是这样的:

# 2012-05-09.8271
CACHE MANIFEST

CACHE:
/index.html

我正在尝试编写一个 shell 脚本(在 OS X Lion 中使用 Automator)来替换第一行并将文本(在哈希之后)更改为今天的日期、一个点和一个随机数。

这是我到目前为止的 bash 脚本,但它什么也没做。

_now=$(date +"%Y-%m-%d")
_rand=$RANDOM
sed -i '' '1 s/[\d\-\.]+/$_now.$_rand/' ~/Desktop/cache.mf
4

3 回答 3

3

使用这个 sed 命令:

sed -i '' '1 s/^#.*$/'"# $_now.$_rand"'/' ~/Desktop/cache.mf
于 2012-05-09T21:58:28.520 回答
1

看起来你离开了 -e 的 sed 表达式!

我没有检查您的 sed 表达式本身,但基本问题是您需要使用 -e 选项识别您的 sed 表达式:

sed -i '' -e '1 s/[\d\-\.]+/$_now.$_rand/' ~/Desktop/cache.mf
于 2012-05-09T21:37:46.643 回答
1

给你:

_now=$(date +"%Y-%m-%d")
_rand=$RANDOM
sed -i -e "s/# [0-9]\+-[0-9]\+-[0-9]\+.[0-9]\+/\# $_now.$_rand/" ~/Desktop/cache.mf
于 2012-05-09T21:50:06.203 回答