文件中有几行看起来像:
A B C H
A B C D
并且,我想要打印包含此RE的所有行:
/A\tB/
但是,如果第四个字段中的行包含H
,请不要打印,输出将为:
A B C D
它可以用sed,awk或grep写成一行吗?
我唯一知道的是:
awk '/^A\tB/'
答案 0 :(得分:4)
这将有效:
awk '$1$2$3$4 ~ /^AB.[^H]/' file
如果所有条目都是单个字符,这也可以起作用:
// the one needed to update with timestamp appended
image += "?"+String.valueOf(System.currentTimeMillis());
Glide.with(mContext.getApplicationContext())
.load(image)
.error(R.drawable.default_avatar)
.centerCrop()
.crossFade()
.into(((VideoViewHolder) holder).img);
// the others don't need to update
Glide.with(mContext.getApplicationContext())
.load(image)
.error(R.drawable.default_avatar)
.centerCrop()
.crossFade()
.into(((VideoViewHolder) holder).img);
答案 1 :(得分:2)
使用 awk 单行:
awk -F'\t' '$1=="A" && $2=="B" && $4!="H"' file
-F'\t'
- 标签字符\t
被视为字段分隔符输出:
A B C D
答案 2 :(得分:2)
这可能适合你(GNU sed):
sed '/^A\tB\t.\t[^H]/!d' file
如果某行不包含A
,B
,除了H
以外的任何字符和字符,请将其删除。
可写:
sed -n '/^A\tB\t.\t[^H]/p' file
答案 3 :(得分:1)
使用此功能。
awk '/^A\tB/ { if ( $4 != "H" ) print }'