Awk 将行字段保存到变量中
我试图制作一个简单的脚本,我需要在变量中保留一个字段。这就是我所拥有的:Awk 将行字段保存到变量中,awk,Awk,我试图制作一个简单的脚本,我需要在变量中保留一个字段。这就是我所拥有的: BEGIN{ FS=":"; } { print; item=$1; print " "$1; print " "$2; print " item:<"$item">"; } 开始{ FS=“:”; } { 印刷品; 项目=1美元; 打印“$1; 打印“$2; 打印“项目:”; } 我不明白的是,当我向脚本传递一行时,这是输出: main.o: s
BEGIN{
FS=":";
}
{
print;
item=$1;
print " "$1;
print " "$2;
print " item:<"$item">";
}
开始{
FS=“:”;
}
{
印刷品;
项目=1美元;
打印“$1;
打印“$2;
打印“项目:”;
}
我不明白的是,当我向脚本传递一行时,这是输出:
main.o: src/main.cpp src/CMenu.h src/CUtils.h src/CAbsPlayer.h \ //given line
main.o //field 1
src/main.cpp src/CMenu.h src/CUtils.h src/CAbsPlayer.h \ //field 2
item:<main.o: src/main.cpp src/CMenu.h src/CUtils.h src/CAbsPlayer.h \> //field1?!
main.o:src/main.cpp src/CMenu.h src/CUtils.h src/CAbsPlayer.h\//给定行
main.o//字段1
src/main.cpp src/CMenu.h src/CUtils.h src/CAbsPlayer.h\//字段2
项目://field1?!
为什么这不起作用,为什么整行都保存到项中?这是:
print " item:<"$item">";
打印“项目:”;
应该是:
print " item:<"item">";
打印“项目:”;
Awk看起来很像C;变量名前没有$。在awk中,$表示一个字段,因此$item尝试使用item的值作为记录的索引。在我的awk(Mac OS)实现中,您编写的脚本很快就会失败;我想您的awk实现更为宽松(但在这种情况下没有任何帮助)。这是:
print " item:<"$item">";
打印“项目:”;
应该是:
print " item:<"item">";
打印“项目:”;
Awk看起来很像C;变量名前没有$。在awk中,$表示一个字段,因此$item尝试使用item的值作为记录的索引。在我的awk(Mac OS)实现中,您编写的脚本很快就会失败;我想您的awk实现是比较宽松的(但在这种情况下没有什么帮助)。噢。我懂了。我只是简单地使用了awk,所以我认为它会像bash一样使用变量。我正在运行Kubuntu,它不会告诉我任何警告或错误。谢谢。我懂了。我只是简单地使用了awk,所以我认为它会像bash一样使用变量。我正在运行Kubuntu,它不会告诉我任何警告或错误。谢谢