Chinaunix
标题:
用sed或awk实现:如果后一行包含前一行的内容,则前面的行不打印。多谢!
[打印本页]
作者:
xiaoshichao143
时间:
2015-03-18 14:35
标题:
用sed或awk实现:如果后一行包含前一行的内容,则前面的行不打印。多谢!
用sed或awk实现:如果后一行包含前一行的内容,则前面的行不打印,如:
a
a/b
a/b/c
a/b/c/d
a/b/c/d/e
a/b/c/d/e/f
b
b/b
b/e
b/e/f
只打印:
a/b/c/d/e/f
b/b
b/e/f
作者:
WilliBhamlll
时间:
2015-03-18 14:43
sed 'N;/^\(.*\)\n\1/!P;D' file
复制代码
作者:
zsszss0000
时间:
2015-03-18 14:44
本帖最后由 zsszss0000 于 2015-03-18 14:44 编辑
awk '{if($0!~str)print str;str=$0;}END{print str}' file
复制代码
a/b/c/d/e/f
b/b
b/e/f
复制代码
作者:
我是一隻羊
时间:
2015-03-18 15:42
awk '{a[NR]=$0}END{for(i=0;i++<NR;)printf a[i+1]!~a[i]?a[i]"\n":""}' inputfile
复制代码
作者:
聆雨淋夜
时间:
2015-03-18 15:48
sed -r ':1;N;s/^(.*)\n(\1.*)/\2/;t1;P;D' file
a/b/c/d/e/f
b/b
b/e/f
复制代码
作者:
xiaoshichao143
时间:
2015-03-18 16:06
回复
2#
WilliBhamlll
非常感谢!!
作者:
xiaoshichao143
时间:
2015-03-18 16:07
多谢大侠们的解答!!
作者:
聆雨淋夜
时间:
2015-03-18 16:11
回复
4#
我是一隻羊
赞一个
作者:
zhxjfl
时间:
2015-03-18 16:46
本帖最后由 zhxjfl 于 2015-03-18 16:46 编辑
sed -r 'N;/^(.*)\n.*\1/!P;D' file
作者:
blackold
时间:
2015-03-19 09:06
回复
1#
xiaoshichao143
求最深路径吧。
作者:
nswcfd
时间:
2015-03-19 18:57
受教!
回复
5#
聆雨淋夜
作者:
nswcfd
时间:
2015-03-19 18:59
学习了!
回复
9#
zhxjfl
作者:
我爱你我的菜
时间:
2015-09-09 13:07
回复
3#
zsszss0000
学习了
作者:
我爱你我的菜
时间:
2015-09-09 13:11
awk -v RS="" '{for(i=2;i<=NF;i++){if($i!~$(i-1)) print $(i-1)}}END{print $NF}' test.txt
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2