GVKun编程网logo

bash – 在’for循环’下的awk’if condition’中求和变量(bash for循环文件)

11

如果您想了解bash–在’for循环’下的awk’ifcondition’中求和变量的相关知识,那么本文是一篇不可错过的文章,我们将对bashfor循环文件进行全面详尽的解释,并且为您提供关于Andr

如果您想了解bash – 在’for循环’下的awk’if condition’中求和变量的相关知识,那么本文是一篇不可错过的文章,我们将对bash for循环文件进行全面详尽的解释,并且为您提供关于Android’InvocationTargetException’和’UnsupportedOperationException’、bash Cookbook, 2nd Edition Solutions and Examples for bash Users pdf、bash shell脚本for循环中的两个变量、bash – 使用{$var}在for循环中进行变量替换的有价值的信息。

本文目录一览:

bash – 在’for循环’下的awk’if condition’中求和变量(bash for循环文件)

bash – 在’for循环’下的awk’if condition’中求和变量(bash for循环文件)

我有一个3列(n = 3)和FS =“”(file1.txt)的文件:

cat file1.txt
3.1 6.6 0
2.4 7.1 4.9
5.7 1.2 6.1

在这里,我想在每个列的awk中给出一个’if条件’,它将测试条件并返回值1或0(取决于结果)并将其存储在另一个变量中,例如:

#!/bin/bash

#code1
awk '{

if  ($1 != 0)

    { x1 = 1 }
    else
    { x1 = 0}


if  ($2 != 0)

    { x2 = 1 }
    else
    { x2 = 0}


if  ($3 != 0)

    { x3 = 1 }
    else
    { x3 = 0}

     x = x1 + x2 + x3
     print x;

     }' file1.txt > output.txt

在这种情况下,所需的输出将是:

cat output.txt
2
3
3

我没有遇到任何问题.

考虑这样的情况:不是有3列,而是有10列(n = 10),如果要对每列应用条件,则相同.在这种情况下,我想运行一个for循环,在该循环下定义相同的if条件.但我认为我在指定第n个字段时出错.另外如何执行xn变量的总和(x1 X2 X3 … X10).这是我到目前为止所尝试的:

awk '{
   for (n=1; n<=10; n++)

    if ($n != 0)

    { xn = 1 }

    else

    { xn = 0 }

    xn+=xn 
    print xn;

             }' file1_10fields.txt > output_10fields.txt

这不是给我正确的输出.我在哪里弄错了?有没有更优雅的方式来做到这一点?
是xn = xn和print xn应该在循环之外吗?另外,获得总和的正确方法是什么?

解决方法

你可以使用这个awk:

awk '{sum=0; for (i=1; i<=NF; i++){sum += $i ? 1 : 0} print sum}' file
2
3
3

> Read more about ternary operator

Awk has conditional operator i.e ternary operator ( ?: ) whose feature is similar to the awk If Else Statement. If the conditional-expression is true,action1 will be performed and if the conditional-expression is false action2 will be performed.

Android’InvocationTargetException’和’UnsupportedOperationException’

Android’InvocationTargetException’和’UnsupportedOperationException’

我在OPPO X905和OPPO X907上遇到了问题,两者都是 Android 4.0.3(API等级15),我没有使用任何更高级别的API,我在Google和SO上搜索过,都与我的问题不同,下面是我的xml文件和崩溃日志,在此先感谢.
xml文件:(分隔符的边距最初是7.5dp,这可能是问题吗?)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/item_full"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#eff0f7"
    android:baselineAligned="false"
    android:orientation="vertical" >
    <RelativeLayout
        android:id="@+id/item_first_half"
        android:layout_width="match_parent"
        android:layout_height="36dp"
        android:orientation="vertical" >
        <View
            android:id="@+id/first_path"
            android:layout_width="4dp"
            android:layout_height="4dp"
            android:layout_marginLeft="40dp"
            android:layout_marginStart="40dp"
            android:background="@drawable/selector_car_action_path" />
        <ImageView
            android:id="@+id/im_car_direction_icon"
            android:layout_width="28dp"
            android:layout_height="28dp"
            android:layout_gravity="top"
            android:layout_marginLeft="28dp"
            android:layout_marginStart="28dp"
            android:layout_marginTop="4dp"
            android:background="@drawable/selector_car_action_background"
            android:padding="2dp"
            android:src="@drawable/selector_navi_icon_63" />
        <View
            android:id="@+id/second_path"
            android:layout_width="4dp"
            android:layout_height="4dp"
            android:layout_below="@id/im_car_direction_icon"
            android:layout_marginLeft="40dp"
            android:layout_marginStart="40dp"
            android:background="@drawable/selector_car_action_path" />
        <TextView
            android:id="@+id/tv_direction"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginEnd="15dp"
            android:layout_marginLeft="68dp"
            android:layout_marginRight="15dp"
            android:layout_marginStart="68dp"
            android:singleLine="true"
            android:text=""
            android:textColor="@drawable/selector_car_route_turn_text"
            android:textSize="16sp" />
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/item_second_half"
        android:layout_width="match_parent"
        android:layout_height="32dp" >
        <View
            android:id="@+id/third_path"
            android:layout_width="4dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="40dp"
            android:layout_marginStart="40dp"
            android:background="@drawable/selector_car_action_path" />
        <TextView
            android:id="@+id/tv_road_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="68dp"
            android:layout_marginStart="68dp"
            android:layout_marginTop="4dp"
            android:singleLine="true"
            android:text=""
            android:textColor="@drawable/selector_car_route_desc"
            android:textSize="16sp" />
        <TextView
            android:id="@+id/divider_for_road_and_distance"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginEnd="7dp"
            android:layout_marginLeft="7dp"
            android:layout_marginRight="7dp"
            android:layout_marginStart="7dp"
            android:layout_marginTop="4dp"
            android:layout_toEndOf="@id/tv_road_name"
            android:layout_toRightOf="@id/tv_road_name"
            android:singleLine="true"
            android:text="|"
            android:textColor="@drawable/selector_car_route_desc"
            android:textSize="16sp" />
        <TextView
            android:id="@+id/tv_ride_distance"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="15dp"
            android:layout_marginRight="15dp"
            android:layout_marginTop="4dp"
            android:layout_toEndOf="@id/divider_for_road_and_distance"
            android:layout_toRightOf="@id/divider_for_road_and_distance"
            android:singleLine="true"
            android:text=""
            android:textColor="@drawable/selector_car_route_desc"
            android:textSize="16sp" />
        <View
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:layout_alignParentBottom="true"
            android:layout_marginEnd="15dp"
            android:layout_marginLeft="68dp"
            android:layout_marginRight="15dp"
            android:layout_marginStart="68dp"
            android:background="#dee1f0" />
    </RelativeLayout>
</LinearLayout>

drawable / selector_car_route_desc文件是

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_selected="true" android:color="@color/color_999999"/>
    <item android:state_selected="false" android:color="@color/color_333333"/>

</selector>

崩溃日志:

android.view.InflateException: Binary XML file line #106: Error inflating class <unkNown>
android.view.LayoutInflater.createView(LayoutInflater.java:606)
com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
android.view.LayoutInflater.onCreateView(LayoutInflater.java:653)
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678)
android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
android.view.LayoutInflater.inflate(LayoutInflater.java:489)
android.view.LayoutInflater.inflate(LayoutInflater.java:396)
android.view.LayoutInflater.inflate(LayoutInflater.java:352)
com.tencent.map.ama.route.ui.view.e.<init>(CarRouteShowItem.java:78)
com.tencent.map.ama.route.ui.view.f.a(CarRouteShowView.java:100)
com.tencent.map.ama.route.ui.view.d.a(CarRouteDetailView.java:37)
com.tencent.map.ama.route.ui.MapStateCarRoute.e(MapStateCarRoute.java:418)
com.tencent.map.ama.route.ui.MapStateCarRoute$1.run(MapStateCarRoute.java:255)
android.os.Handler.handleCallback(Handler.java:605)
android.os.Handler.dispatchMessage(Handler.java:92)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4476)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:808)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:575)
dalvik.system.NativeStart.main(Native Method)
cause by:
java.lang.reflect.InvocationTargetException: null
java.lang.reflect.Constructor.constructNative(Native Method)
java.lang.reflect.Constructor.newInstance(Constructor.java:417)
android.view.LayoutInflater.createView(LayoutInflater.java:586)
com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
android.view.LayoutInflater.onCreateView(LayoutInflater.java:653)
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678)
android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
android.view.LayoutInflater.inflate(LayoutInflater.java:489)
android.view.LayoutInflater.inflate(LayoutInflater.java:396)
android.view.LayoutInflater.inflate(LayoutInflater.java:352)
com.tencent.map.ama.route.ui.view.e.<init>(CarRouteShowItem.java:78)
com.tencent.map.ama.route.ui.view.f.a(CarRouteShowView.java:100)
com.tencent.map.ama.route.ui.view.d.a(CarRouteDetailView.java:37)
com.tencent.map.ama.route.ui.MapStateCarRoute.e(MapStateCarRoute.java:418)
com.tencent.map.ama.route.ui.MapStateCarRoute$1.run(MapStateCarRoute.java:255)
android.os.Handler.handleCallback(Handler.java:605)
android.os.Handler.dispatchMessage(Handler.java:92)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4476)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:808)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:575)
dalvik.system.NativeStart.main(Native Method)
cause by:
java.lang.UnsupportedOperationException: Can''t convert to dimension: type=0x12
android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:463)
android.view.View.<init>(View.java:2849)
android.widget.TextView.<init>(TextView.java:499)
android.widget.TextView.<init>(TextView.java:492)
java.lang.reflect.Constructor.constructNative(Native Method)
java.lang.reflect.Constructor.newInstance(Constructor.java:417)
android.view.LayoutInflater.createView(LayoutInflater.java:586)
com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
android.view.LayoutInflater.onCreateView(LayoutInflater.java:653)
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678)
android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
android.view.LayoutInflater.inflate(LayoutInflater.java:489)
android.view.LayoutInflater.inflate(LayoutInflater.java:396)
android.view.LayoutInflater.inflate(LayoutInflater.java:352)
com.tencent.map.ama.route.ui.view.e.<init>(CarRouteShowItem.java:78)
com.tencent.map.ama.route.ui.view.f.a(CarRouteShowView.java:100)
com.tencent.map.ama.route.ui.view.d.a(CarRouteDetailView.java:37)
com.tencent.map.ama.route.ui.MapStateCarRoute.e(MapStateCarRoute.java:418)
com.tencent.map.ama.route.ui.MapStateCarRoute$1.run(MapStateCarRoute.java:255)
android.os.Handler.handleCallback(Handler.java:605)
android.os.Handler.dispatchMessage(Handler.java:92)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4476)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:808)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:575)
dalvik.system.NativeStart.main(Native Method)

CarRouteShowItem.java:78的代码是这样的:

View mView = LayoutInflater.from(mContext).inflate(R.layout.car_route_detail_item,null);

CarRouteShowItem不是View的子代,其代码如下:

public class CarRouteShowItem {

    private Context mContext;

    private View mView;

    public CarRouteShowItem(Context context) {
        mContext = context;

        // mView is used by caller 
        mView = LayoutInflater.from(mContext).inflate(R.layout.car_route_detail_item,null);

        // some view finds 
    }

        // some other methods related with specific logic
}

图形布局可以在Eclipse中从API级别8预览到API级别23,但是当我在API级别15的Android Studio中预览时,它会显示错误消息:无法解析资源@style / Widget.TextView,其他API级别没问题,但我没有使用TextView的样式.

解决方法

你需要的只是一个额外的眼睛:-)

enter image description here

android:layout_height="1px"

希望你现在能看到.第二个RelativeLayout中的最后一个子项,其id为item_second_half,类型为< View,将其更改为

android:layout_height="1dp"

让我尽快回顾一下

bash Cookbook, 2nd Edition Solutions and Examples for bash Users pdf

bash Cookbook, 2nd Edition Solutions and Examples for bash Users pdf



Oreilly Bash Cookbook 2nd Edition 1491975334 Early Release.pdf

bash shell脚本for循环中的两个变量

bash shell脚本for循环中的两个变量

我是shell脚本的新手.如果我的怀疑太愚蠢,请好好地忍受我.

我在两个不同的目录中有png图像和一个可执行文件,它从每个目录中获取图像并处理它们以生成新图像.

我正在寻找一个可以同时获取两个变量的for循环结构.这在C,C等中是可能的,但我如何实现以下内容.代码显然是错误的.

#!/bin/sh

im1_dir=~/prev1/*.png  
im2_dir=~/prev3/*.png
index=0

for i,j in $im1_dir $im2_dir  # i iterates in im1_dir and j iterates in im2_dir 
do
  run_black.sh $i $j  
done

谢谢!

如果您依赖于两个目录来匹配基于区域设置排序顺序(如您的尝试),那么数组应该可以工作.
im1_files=(~/prev1/*.png)
im2_files=(~/prev3/*.png)

for ((i=0;i<=${#im1_files[@]};i++)); do
   run_black.sh "${im1_files[i]}" "${im2_files[i]}"
done

bash – 使用{$var}在for循环中进行变量替换

bash – 使用{$var}在for循环中进行变量替换

我是新手来编写脚本,我正在尝试通过制作这个简单要求一系列数字的小脚本来练习.我会输入前. 5..20它应该打印范围,但是它只是回显我输入的内容(在这个例子中为“5..20”)并且不扩展变量.有人能告诉我我做错了什么吗?

脚本:

echo -n "Enter range of number to display using 0..10 format: "
    read range

    function func_printrage
    {
         for n in {$range}; do
         echo $n
         done
    }

func_printrange
> bash中的brace扩展不会扩展参数(与zsh不同)
>你可以通过使用eval和命令替换来解决这个问题$()
> eval是邪恶的,因为你需要消毒你的输入,否则人们可以输入rm -rf /等范围;并且eval会运行它
>不要使用function关键字,它不是POSIX而已被弃用
>使用read的-p标志而不是echo

但是,出于学习目的,您可以这样做:

read -p "Enter range of number to display using 0..10 format: " range

func_printrange()
{
  for n in $(eval echo {$range}); do
    echo $n
  done
}

func_printrange

注意:在这种情况下,使用eval是正常的,因为您只是回显范围

今天关于bash – 在’for循环’下的awk’if condition’中求和变量bash for循环文件的介绍到此结束,谢谢您的阅读,有关Android’InvocationTargetException’和’UnsupportedOperationException’、bash Cookbook, 2nd Edition Solutions and Examples for bash Users pdf、bash shell脚本for循环中的两个变量、bash – 使用{$var}在for循环中进行变量替换等更多相关知识的信息可以在本站进行查询。

本文标签: