Bash 将结果打印到awk中输出文件的第二行
似乎还没有人发现我的问题,就这样吧。Bash 将结果打印到awk中输出文件的第二行,bash,awk,Bash,Awk,似乎还没有人发现我的问题,就这样吧。 因此,我想在输入文件的第二行、第四行、第六行等的第三列$3(我知道怎么做),然后在输出文件中的相同位置打印结果。 我的意思是,第二行输入的$3,到第二行输出的$3,然后继续。 我想要这个,使用bash的awk。似乎你不能很好地解释你想要什么,所以我猜,也许你可以说什么是错的,它将通过消除过程得到解决 给定一个名为file的输入文件,如下所示: Line 0,field2,field3,90 Line 1,field2,field3,80 Line 2,fie
因此,我想在输入文件的第二行、第四行、第六行等的第三列
$3
(我知道怎么做),然后在输出文件中的相同位置打印结果。我的意思是,
第二行输入的$3
,到第二行输出的$3
,然后继续。
我想要这个,使用bash的awk。似乎你不能很好地解释你想要什么,所以我猜,也许你可以说什么是错的,它将通过消除过程得到解决
给定一个名为file
的输入文件,如下所示:
Line 0,field2,field3,90
Line 1,field2,field3,80
Line 2,field2,field3,82
Line 3,field2,field3,21
Line 4,field2,field3,85
以下awk将每隔一行打印一次field3,打印位置与找到的位置相同,但周围没有其他内容:
awk -F, 'NR%2{print ",,"$3"\n,,";}' file
输出:
,,field3
,,
,,field3
,,
,,field3
,,
似乎你们不能很好地解释你们想要什么,所以我猜,也许你们可以说什么是错的,它会通过消除的过程得到解决
给定一个名为file
的输入文件,如下所示:
Line 0,field2,field3,90
Line 1,field2,field3,80
Line 2,field2,field3,82
Line 3,field2,field3,21
Line 4,field2,field3,85
以下awk将每隔一行打印一次field3,打印位置与找到的位置相同,但周围没有其他内容:
awk -F, 'NR%2{print ",,"$3"\n,,";}' file
输出:
,,field3
,,
,,field3
,,
,,field3
,,
似乎你们不能很好地解释你们想要什么,所以我猜,也许你们可以说什么是错的,它会通过消除的过程得到解决
给定一个名为file
的输入文件,如下所示:
Line 0,field2,field3,90
Line 1,field2,field3,80
Line 2,field2,field3,82
Line 3,field2,field3,21
Line 4,field2,field3,85
以下awk将每隔一行打印一次field3,打印位置与找到的位置相同,但周围没有其他内容:
awk -F, 'NR%2{print ",,"$3"\n,,";}' file
输出:
,,field3
,,
,,field3
,,
,,field3
,,
似乎你们不能很好地解释你们想要什么,所以我猜,也许你们可以说什么是错的,它会通过消除的过程得到解决
给定一个名为file
的输入文件,如下所示:
Line 0,field2,field3,90
Line 1,field2,field3,80
Line 2,field2,field3,82
Line 3,field2,field3,21
Line 4,field2,field3,85
以下awk将每隔一行打印一次field3,打印位置与找到的位置相同,但周围没有其他内容:
awk -F, 'NR%2{print ",,"$3"\n,,";}' file
输出:
,,field3
,,
,,field3
,,
,,field3
,,
下面是如何使用awk
awk 'FNR==NR {a[NR]=$3;next} FNR%2==0 {$3=a[FNR]}1' firstfile secondfile
这将从第一个文件
获取数据,并使用列$3
和每第二行更新第二个文件
。
数据被替换在同一位置
cat firstfile
1 one green
2 two red
3 three blue
4 four orange
5 five yellow
6 six brown
运行awk
命令:
1 one jan
2 two red
3 three mars
4 four orange
5 five jun
6 six brown
也将数据存储回第二个文件
awk 'FNR==NR {a[NR]=$3;next} FNR%2==0 {$3=a[FNR]}1' firstfile secondfile > tmp && mv tmp secondfile
下面是如何使用awk
awk 'FNR==NR {a[NR]=$3;next} FNR%2==0 {$3=a[FNR]}1' firstfile secondfile
这将从第一个文件
获取数据,并使用列$3
和每第二行更新第二个文件
。
数据被替换在同一位置
cat firstfile
1 one green
2 two red
3 three blue
4 four orange
5 five yellow
6 six brown
运行awk
命令:
1 one jan
2 two red
3 three mars
4 four orange
5 five jun
6 six brown
也将数据存储回第二个文件
awk 'FNR==NR {a[NR]=$3;next} FNR%2==0 {$3=a[FNR]}1' firstfile secondfile > tmp && mv tmp secondfile
下面是如何使用awk
awk 'FNR==NR {a[NR]=$3;next} FNR%2==0 {$3=a[FNR]}1' firstfile secondfile
这将从第一个文件
获取数据,并使用列$3
和每第二行更新第二个文件
。
数据被替换在同一位置
cat firstfile
1 one green
2 two red
3 three blue
4 four orange
5 five yellow
6 six brown
运行awk
命令:
1 one jan
2 two red
3 three mars
4 four orange
5 five jun
6 six brown
也将数据存储回第二个文件
awk 'FNR==NR {a[NR]=$3;next} FNR%2==0 {$3=a[FNR]}1' firstfile secondfile > tmp && mv tmp secondfile
下面是如何使用awk
awk 'FNR==NR {a[NR]=$3;next} FNR%2==0 {$3=a[FNR]}1' firstfile secondfile
这将从第一个文件
获取数据,并使用列$3
和每第二行更新第二个文件
。
数据被替换在同一位置
cat firstfile
1 one green
2 two red
3 three blue
4 four orange
5 five yellow
6 six brown
运行awk
命令:
1 one jan
2 two red
3 three mars
4 four orange
5 five jun
6 six brown
也将数据存储回第二个文件
awk 'FNR==NR {a[NR]=$3;next} FNR%2==0 {$3=a[FNR]}1' firstfile secondfile > tmp && mv tmp secondfile
请把你试过的贴出来。我什么都没试过。对于输入,我执行了awk-F“'NR%2==0{print$3}”input.txt,并得到了我想要的结果。但是我不知道如何为输出编码。对不起。@markos89,请发布输入和输出示例。请发布您尝试过的内容。我什么都没试过。对于输入,我执行了awk-F“'NR%2==0{print$3}”input.txt,并得到了我想要的结果。但是我不知道如何为输出编码。对不起。@markos89,请发布输入和输出示例。请发布您尝试过的内容。我什么都没试过。对于输入,我执行了awk-F“'NR%2==0{print$3}”input.txt,并得到了我想要的结果。但是我不知道如何为输出编码。对不起。@markos89,请发布输入和输出示例。请发布您尝试过的内容。我什么都没试过。对于输入,我执行了awk-F“'NR%2==0{print$3}”input.txt,并得到了我想要的结果。但是我不知道如何为输出编码。对不起。@markos89,请发布输入和输出示例。非常感谢@Jotne。如果你能解释一下“}”后面的“1”是什么意思。非常感谢。1
是一个命令,它将执行默认操作(打印行),因此1
=1{print}
=1{print$0}
非常感谢@Jotne。如果你能解释一下“}”后面的“1”是什么意思。非常感谢。1
是一个命令,它将执行默认操作(打印行),因此1
=1{print}
=1{print$0}
非常感谢@Jotne。如果你能解释一下“}”后面的“1”是什么意思。非常感谢。1
是一个命令,它将执行默认操作(打印行),因此1
=1{print}
=1{print$0}
非常感谢@Jotne。如果你能解释一下“}”后面的“1”是什么意思。非常感谢。1
是一个命令,它将执行默认操作(打印行),因此1
=1{print}
=1{print$0}