Linux 使用awk打印输出格式
这是我写的awk脚本:Linux 使用awk打印输出格式,linux,awk,Linux,Awk,这是我写的awk脚本: BEGIN{ print "Working" } { awk "$1=$1" FS=";" OFS="\n" questions.txt > aa.txt } 该文件包含如下文本: B-001-002-002;An Amateur Radio Operator Certificate is valid >for:;life;five years;three years;one year 使用FS和OFS,我可以将其拆分为单独的行。代码在cli中工作
BEGIN{ print "Working" }
{
awk "$1=$1" FS=";" OFS="\n" questions.txt > aa.txt
}
该文件包含如下文本:
B-001-002-002;An Amateur Radio Operator Certificate is valid >for:;life;five years;three years;one year
使用FS和OFS,我可以将其拆分为单独的行。代码在cli中工作,但我希望将其写入脚本并能够运行它
我的代码是:
awk '$1=$1' FS=";" OFS="\n" filename
这可以在cli中使用,但我不确定如何在脚本中使用它
期望输出:
谢谢 您需要的不仅仅是更改分隔符
$ awk -F';' 'BEGIN{split("x;x;a;b;c;d;e",c)}
{print NR". " $1; print $2;
for(i=3;i<=NF;i++) print c[i] ") " $i}' file
1. B-001-002-002
An Amateur Radio Operator Certificate is valid for:
a) life
b) five years
c) three years
d) one year
$awk-F';“”开始{split(“x;x;a;b;c;d;e”,c)}
{打印编号“.”$1;打印编号$2;
对于(i=3;i您是否尝试过将这些精确的行复制到文件中?因为它可以工作。我应该在BEGIN块中使用它,还是仅在单独的块中使用它?我尝试过这样做。当我复制相同的代码并运行它时,它会出现语法错误:syntax error at或near=您的命令对我的工作方式相同,无论它是在脚本中还是在命令行上。我复制了awk'$1=$1'FS=“;”OFS=“\n”文件名
,将其放入名为scr
的文件中,运行chmod+x scr
,然后运行/scr
,并从分号分隔的文件中获得作为单独行的输出。你到底为什么要将脚本作为图像而不是文本发布,我们可以执行以测试它???不管怎样-你试图从内部调用awkawk,我怀疑你们不理解awk和shell之间的区别。请阅读Arnold Robbins的《有效的awk编程,第四版》一书的第一章来解决这个问题,然后在尝试更多的awk编程之前阅读它的其余部分,谢谢你们的回复。这是我第一次在stackoverflow。我什么都不知道工作