h**o 发帖数: 548 | 1 我想comment out 某一行。
suppose the content of a.txt is:
111111111
222222222
33333AAA
444444444
我写到:
pos=`grep -n "AAA" a.txt |cut -d':' -f1`
sed "${pos} d" a.txt >b.txt
sed '
$pos i\
#33333AAA\
' b.txt>a.txt
前两个命令没问题, 最后一个命令得到错误信息:
sed: command garbled: $pos i\
请问错在哪? 其实我用:
sed '
3 i\
#33333AAA\
' b.txt>a.txt
就对了。 可能和variable 有关。 |
t****t 发帖数: 6806 | 2 in shell, interpolation is disabled when you use '' to quote. so $pos is $
pos, not 3.
【在 h**o 的大作中提到】 : 我想comment out 某一行。 : suppose the content of a.txt is: : 111111111 : 222222222 : 33333AAA : 444444444 : 我写到: : pos=`grep -n "AAA" a.txt |cut -d':' -f1` : sed "${pos} d" a.txt >b.txt : sed '
|
h**o 发帖数: 548 | 3 那怎么写?
【在 t****t 的大作中提到】 : in shell, interpolation is disabled when you use '' to quote. so $pos is $ : pos, not 3.
|
o*o 发帖数: 404 | 4 试试double quote
实际上根本没明白你要干什么
【在 h**o 的大作中提到】 : 那怎么写?
|
h**o 发帖数: 548 | 5 我其实就想用unix命令把文件中有AAA的那行注释掉。
如果文件是:
111111111
222222222
33333AAA
444444444
想把它变成:
111111111
222222222
#33333AAA
444444444
【在 h**o 的大作中提到】 : 那怎么写?
|
o*o 发帖数: 404 | 6 sed -re '/AAA/s/^.*$/#&/' a
【在 h**o 的大作中提到】 : 我其实就想用unix命令把文件中有AAA的那行注释掉。 : 如果文件是: : 111111111 : 222222222 : 33333AAA : 444444444 : 想把它变成: : 111111111 : 222222222 : #33333AAA
|