使用sed替换Mac OS X Lion上的第一行文本文件

时间:2012-05-09 21:30:55

标签: regex macos sed

我有一个文件, 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

3 个答案:

答案 0 :(得分:3)

使用此sed命令:

sed -i '' '1 s/^#.*$/'"# $_now.$_rand"'/' ~/Desktop/cache.mf

答案 1 :(得分:1)

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

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

sed -i '' -e '1 s/[\d\-\.]+/$_now.$_rand/' ~/Desktop/cache.mf

答案 2 :(得分: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