论坛风格切换切换到宽版
  • 953阅读
  • 8回复

[问题求助][RedHat] sed 处理出错 [复制链接]

上一主题 下一主题
离线justinwei.
 
发帖
2072
C币
-140234
威望
368
贡献值
1
银元
-2
铜钱
4597
人人网人气币
0
只看楼主 正序阅读 使用道具 楼主  发表于: 2009-05-01
sed   "`expr $(cat temp | wc -l) - 1`,$d"  ./temp(目的:用sed删除temp的行数减1 的所有行http://upload.bbs.csuboy.com/Mon_1004/126_6899_94b8e503d334f2e.gif[/img]健康
提示:sed: -e expre.ssion. #1, char 2: unexpected `,'服务器


怎么回事呢?

谢谢

[ 本帖最后由 mfkwwgi .于 2009-12-19 22:.23 编辑 ]外贸

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
发帖
1968
C币
-235592
威望
358
贡献值
1
银元
0
铜钱
4434
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13
Re:[RedHat]
谢谢.明白了.

sed '3,$d' temp
sed "3,\$d" temp

执行结果都是一样的.
离线wtwone.
发帖
1879
C币
-61192
威望
343
贡献值
1
银元
-4
铜钱
4274
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
Re:[RedHat]
其实很简单,先看个例子,

23:42:03 >d='s/apple/boy/g'

23:42:07 >echo apple >file

23:42:10 >cat file

apple

23:42:11 >sed "$d" file

boy

23:42:17 >
复制代码

双引号只转义部分元字符..$d被shell当作变量替换了

推荐看下"shell历险之——引用的迷途"

离线zcl8840.
发帖
1904
C币
-193754
威望
357
贡献值
1
银元
-2
铜钱
4354
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
Re:[RedHat]


呵呵。真不懂。就要问。呵呵

sed "$d" temp

怎么不报错?

谢谢

离线jackerbauer.
发帖
1966
C币
-199280
威望
325
贡献值
1
银元
-6
铜钱
4420
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
Re:[RedHat]
这LZ好可耐,啵一下

离线qiusibo.
发帖
2049
C币
-559669
威望
386
贡献值
3
银元
0
铜钱
4557
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
Re:[RedHat]
我没有看不仔细。

我理解成第一个$符了。

离线gfmv.
发帖
2076
C币
-60690
威望
375
贡献值
1
银元
-1
铜钱
4711
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
Re:[RedHat]
哦。不好意思。

我不仔细。

呵呵。

谢谢。

离线七郎仔.
发帖
2107
C币
-235752
威望
397
贡献值
2
银元
-2
铜钱
4687
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
Re:[RedHat]
啊? - - 上面那个我已经改过了啊,$前面加一个\ 就可以了,我这里测试没问题

因为你表达式外面用的是双引号嘛,里面的$d也会被当作变量来替换..所以要把$转义掉

离线wing.
发帖
2050
C币
-60802
威望
371
贡献值
1
银元
-3
铜钱
4533
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
Re:[RedHat]
sed   "`expr $(cat temp | wc -l) - 1`,\$d"  ./temp
复制代码

用双引号的话$需要转义......

快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个