Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何创建一个新文件,其中每一行都包含一些文本和带引号的行号/步骤号?_Shell_Unix_Command Line_Awk - Fatal编程技术网

Shell 如何创建一个新文件,其中每一行都包含一些文本和带引号的行号/步骤号?

Shell 如何创建一个新文件,其中每一行都包含一些文本和带引号的行号/步骤号?,shell,unix,command-line,awk,Shell,Unix,Command Line,Awk,我想在创建一个新文件时使用循环,其中每一行都是通过一个/单个步骤创建的:一些文本,然后引用步骤编号,然后是其他内容。我从这段代码开始,但它不起作用: gawk ' { for (i = 1; i <= 1000; i++) print "begin\""i"\"text"i"end" # how to print a line break? >> "path/to/output.txt" }' 请帮助解决此问题。代码需要放在开始块中:

我想在创建一个新文件时使用循环,其中每一行都是通过一个/单个步骤创建的:一些文本,然后引用步骤编号,然后是其他内容。我从这段代码开始,但它不起作用:

gawk '
{
    for (i = 1; i <= 1000; i++)
        print "begin\""i"\"text"i"end" # how to print a line break?
        >> "path/to/output.txt" 
}'

请帮助解决此问题。

代码需要放在
开始
块中:

gawk 'BEGIN {
    for (i = 1; i <= 1000; i++)
        print "begin\""i"\"text"i"end" >> "path/to/output.txt" 
}'
gawk'开始{
对于(i=1;i>“path/to/output.txt”
}'

它不工作?它是否显示任何语法错误?或者根本不工作,如果是,当前输出是什么。gawk程序冻结,没有输出,因此我必须在第一个引号之后和第一个大括号之前关闭appPut
BEGIN
awk
需要一个输入文件,而您没有提供该文件,它会再次运行您的命令但是,在读取任何输入之前,它运行一个
BEGIN
awk'BEGIN{…}
或者,执行
seq 1 1000 | awk'{print“Hello”,$1}“
严格来说,这不是真的。Awk读取它的标准输入,因此如果您不向它提供任何输入,它将等待您键入某些内容(因此看起来挂起)@tripleee:我不明白。上面的代码给出了所需的输出文件,但没有指定任何输入文件。你测试过答案中发布的代码吗?它是有效的,但断言代码需要在
BEGIN
块中是不正确的。有许多解决方法,其中许多方法比这个更容易发现——不使用对于shell可以做的事情,Awk是相当明显的。我真的不理解向下投票。我问了关于使用指定工具(Awk)解决特定问题的问题,我找到了一个有效的答案。事实上,我不熟悉Unix shell,也不知道什么工具更适合这种情况。您的代码还可以,但您应该使用
而不是
>
进行输出重定向,因为您希望创建一个新文件,而不是附加到现有文件,或者更好的是将其作为
文件运行wk'BEGIN{for(i=1;i
gawk 'BEGIN {
    for (i = 1; i <= 1000; i++)
        print "begin\""i"\"text"i"end" >> "path/to/output.txt" 
}'