我有一个像这样的大文件
C1,C2,C3
C1,C2
C5
C3,C5
我期待一个这样的输出
C1,C2,C3 3
C1,C2 2
C5 1
C3,C5 2
我想用shell做这个。你能帮帮我们吗? 三江源
答案 0 :(得分:2)
像
这样的东西class SCConstraintLayout extends android.support.constraint.ConstraintLayout {
public SCConstraintLayout(Context context) {
super(context);
}
public SCConstraintLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SCConstraintLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int chosenDimension = 0;
int mode = 0;
if (ScMain.isLandscapeOriented) {
chosenDimension = MeasureSpec.getSize(heightMeasureSpec);
mode = MeasureSpec.getMode(heightMeasureSpec);
} else {
chosenDimension = MeasureSpec.getSize(widthMeasureSpec);
mode = MeasureSpec.getMode(widthMeasureSpec);
}
int width = MeasureSpec.makeMeasureSpec(chosenDimension, mode);
int height = MeasureSpec.makeMeasureSpec(chosenDimension, mode);
// setMeasuredDimension(width, height);
super.onMeasure(width, height);
}
}
应该给出
awk 'BEGIN{FS=","}{printf "%-20s\t%d\n",$0,NF;}' file
注意您需要根据行的最大长度逻辑调整宽度
答案 1 :(得分:1)
awk中的另一个人:
$ awk '{
m=(m<(n=length($0))?n:m) # get the max record length
a[NR]=$0 } # hash to a
END {
for(i=1;i<=NR;i++) # iterate and (below) output nicely
printf "%s%"(m-length(a[i])+4)"s\n",a[i],gsub(/,/,"&",a[i])+1 }
' file
C1,C2,C3 3
C1,C2 2
C5 1
C3,C5 2
如果您想要更改字段与长度之间的距离,请使用+4
中的printf
玩具。