File 如何在文件的每行开头添加不同的行
我有一个文件如下所示:File 如何在文件的每行开头添加不同的行,file,variables,loops,unix,add,File,Variables,Loops,Unix,Add,我有一个文件如下所示: coffee soda pizza hamburger fries 我想在这些行的开头添加一行,这样它会给出以下内容: Enter 1 for: coffee Enter 2 for: soda Enter 3 for: pizza Enter 4 for: hamburger Enter 5 for: fries 我该怎么做?我猜我应该使用循环,但不知道从哪里开始。如果必须这样做,我会使用 grep -n ^ file |
coffee
soda
pizza
hamburger
fries
我想在这些行的开头添加一行,这样它会给出以下内容:
Enter 1 for: coffee
Enter 2 for: soda
Enter 3 for: pizza
Enter 4 for: hamburger
Enter 5 for: fries
我该怎么做?我猜我应该使用循环,但不知道从哪里开始。如果必须这样做,我会使用
grep -n ^ file | # prepend the line number and a : to each line
sed 's/^\([0-9]*\):/Enter \1 for:/' # surround the line number with the text you need
grep的诀窍是^匹配每一行,包括空行,因为它表示所有有开始的行。所以你滥用了greps显示匹配行数的能力,在每行前面都有一个行号
sed部分是相当标准的-匹配一个模式,替换它,将匹配模式的某些部分的编号放入替换文本中
我希望从输出中省略pizza是一个复制/粘贴错误;如果没有,您必须相应地将模式调整为grep,如grep-n-v pizza file。如果必须这样做,我会使用
grep -n ^ file | # prepend the line number and a : to each line
sed 's/^\([0-9]*\):/Enter \1 for:/' # surround the line number with the text you need
grep的诀窍是^匹配每一行,包括空行,因为它表示所有有开始的行。所以你滥用了greps显示匹配行数的能力,在每行前面都有一个行号
sed部分是相当标准的-匹配一个模式,替换它,将匹配模式的某些部分的编号放入替换文本中
我希望从输出中省略pizza是一个复制/粘贴错误;如果没有,您必须相应地将模式调整为grep,如grep-n-v pizza文件
非常简单的方法。参数索引,它是您的计数器,您正在逐行打印所有文件内容。
对于每一行,您需要增加计数器
非常简单的方法。参数索引,它是您的计数器,您正在逐行打印所有文件内容。
对于每一行,您需要增加计数器。使用awk
使用awk
是的,这是一个错误,谢谢你帮我抓住它!另外,sed能帮我增加这个数字吗?或者我每次都必须更改数字吗?是grep增加数字,而不是sed。试着只运行第一部分。sed只需获取grep生成的行号,并用您需要的文本将其包围。是的,这是一个错误,感谢您为我捕捉到它!另外,sed能帮我增加这个数字吗?或者我每次都必须更改数字吗?是grep增加数字,而不是sed。试着只运行第一部分。sed只获取grep生成的行号,并用所需的文本将其包围。
$ awk '{print "Enter "NR" for: "$0}' filename
Enter 1 for: coffee
Enter 2 for: soda
Enter 3 for: pizza
Enter 4 for: hamburger
Enter 5 for: fries