sed 's/\(^a.*\)/\1 12/' test
#cat test
askdj
aslkd aslkdjf3e
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfj
#sed 's/\(^a.*\)/\1 12/' test
askdj 12
aslkd aslkdjf3e 12
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfj 12
#cat test
askdj
aslkd aslkdjf3e
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfj
#sed 's/\(^a.*\)/\1 12/' test
askdj 12
aslkd aslkdjf3e 12
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfj 12
0
sed -n 's/ \(^a.*\)/ \1 123\p' test.txt
输出结果:
adm:x:3:4:adm:/var/adm:/sbin/nologin 12
awei123:x:500:513::/home/awei123:/bin/bash 12
输出结果:
adm:x:3:4:adm:/var/adm:/sbin/nologin 12
awei123:x:500:513::/home/awei123:/bin/bash 12
0
我觉得阿铭老师这里有点搞复杂了,就其实就像你书里面讲的一样,可以用简单的方法实现,下面我分别在符合条件的行的前面和后面添加指定字符串,写两条命令1.在/etc/passwd文件中在含有root的行的前面添加abc字符串,并在后面跟一个空格
2.在/etc/passwd文件中在以第一个mail开头的行到以一个ftp开头的行的后面添加abc,并在abc前面加一个空格
- sed '/root/s/^/abc /' /etc/passwd
2.在/etc/passwd文件中在以第一个mail开头的行到以一个ftp开头的行的后面添加abc,并在abc前面加一个空格
- sed '/^mail\>/,/^ftp\>/s/$/ abc/' /etc/passwd
0
这样就行拉
sed 's/root/abc &/' /etc/passwd
蓝色风暴 发表于 2015-12-1 09:44
我觉得阿铭老师这里有点搞复杂了,就其实就像你书里面讲的一样,可以用简单的方法实现,下面我分别在符合条 ...
这样就行拉
sed 's/root/abc &/' /etc/passwd
0
sed -r 's/(^root)(.*)/& 12/' /etc/passwd
蔡炳森 发表于 2016-2-25 19:22
sed -r 's/^(root)(.*)/& 12/' 这句话貌似也是可以在我们中特定的行进行 添加数字
sed -r 's/(^root)(.*)/& 12/' /etc/passwd
0
其实直接这样就好:sed '1,$s/$/ 12/'
sed 's/.*/& 12/' /etc/passwd
记太多只会造成自己的记忆负担
wsw13640218682 发表于 2016-3-10 09:28
铭哥的弄得有点复杂,其实直接这样就好:sed '1,$s/$/ 12/'
这个以asl和sdk开头的开始插入空格再加12
...
其实直接这样就好:sed '1,$s/$/ 12/'
sed 's/.*/& 12/' /etc/passwd
记太多只会造成自己的记忆负担
编辑回复