回答
echo
在awk命令中不起作用。试试这个:
seq 1 5 | awk '{sum+=$1} END {print sum > "test_file"}
要输入输出到一个文件,你必须重定向到"test_file"
这样的:
$ seq 5 | awk '{sum+=$1} END{print sum > "test_file"}'
$ cat test_file
15
你的版本是行不通的,因为你没有引用test_file
,所以awk
它被认为是一个变量。由于您之前没有定义它,因此awk无法正确重定向。 David W's answer解释得很好。
还要注意,seq 5
相当于seq 1 5
。
在你想要的结果保存到一个变量的情况下,你可以使用var=$(command)
语法:
$ sum=$(seq 5 | awk '{sum+=$1} END{print sum}')
$ echo $sum
15
你不需要awk
这一点。你可以说:
$ seq 5 | paste -sd+ | bc > test_file
$ cat test_file
15
这个问题被打上bash所以这里是一个纯bash的解决方案:
for ((i=1; i<=5; i++)); do ((sum+=i)); done; echo "$sum" > 'test_file'
或者这一个:
for i in {1..5}; do ((sum+=i)); done; echo "$sum" > 'test_file'
它看起来像你混淆BASH语法和Awk。 Awk是一种编程语言,它与BASH语法非常不同。
$ seq 1 5 | awk '{ sum += $1 } END { print sum }'
15
你要拍摄15
到一个文件:
$ seq 1 5 | awk '{ sum += $1 } END { print sum }' > test_file
正在使用外壳的重定向。 >
出现在外壳有控制权的Awk程序之外,并将标准重定向到文件test_file
。
您也可以在Awk中重定向,但是这是Awk的重定向。但是,它使用相同的语法BASH:
$ seq 1 5 | awk '{ sum += $1 } END { print sum > "test_file" }'
注意文件名已被引用,或awk将假设test_file
是一个变量,你会得到关于重定向到一个空文件中的一些错误名称。
+1非常好的解释。 – fedorqui
http://sed.sourceforge.net/grabbag/scripts/add_decs.sed
#! /bin/sed -f
# This is an alternative approach to summing numbers,
# which works a digit at a time and hence has unlimited
# precision. This time it is done with lookup tables,
# and uses only 10 commands.
G
s/\n/-/
s/$/-/
s/$/;9aaaaaaaaa98aaaaaaaa87aaaaaaa76aaaaaa65aaaaa54aaaa43aaa32aa21a100/
:loop
/^--[^a]/!{
# Convert next digit from both terms into analog form
# and put the two groups next to each other
s/^\([0-9a]*\)\([0-9]\)-\([^-]*\)-\(.*;.*\2\(a*\)\2.*\)/\1-\3-\5\4/
s/^\([^-]*\)-\([0-9a]*\)\([0-9]\)-\(.*;.*\3\(a*\)\3.*\)/\1-\2-\5\4/
# Back to decimal, but keeping the carry in analog form
# \2 matches an `a' if there are at least ten a's, else nothing
#
# 1------------- 3- 4----------------------
# 2 5----
s/-\(aaaaaaaaa\(a\)\)\{0,1\}\(a*\)\([0-9b]*;.*\([0-9]\)\3\5\)/-\2\5\4/
b loop
}
s/^--\([^;]*\);.*/\1/
h
大声笑这一定是个笑话!你赢得了今年最荒谬的回答奖。 –
刚刚看到这个评论,当有人今天投票表决。没问题,只要给别人一个你可以用不同方式完成工作的想法。如果你不是'Sed'粉丝,那么你就不会理解它是如何激发它的逻辑的。 – BMW
- 1. 将变量写入文件
- 2. 将TEXTAREA内容写入文本文件
- 3. 将RichTextBox的内容写入文件
- 4. 将TextArea的内容写入文件
- 5. 将JSF inputText的内容写入文件
- 6. 将NSMutableArray的内容写入plist文件
- 7. Python - 将变量写入文本文件
- 8. 如何将BytesWritable内容写入文件?
- 9. 将xml内容写入文件
- 10. 将BeautifulSoup内容写入文件
- 11. Shell脚本 - 将变量的内容写入文件中的特定位置?
- 12. 将文件内容批量读入变量
- 13. 在JavaScript中使用“FSO”,如何将变量的内容写入文件?
- 14. bash脚本将内容写入文件。文件内容需要bash变量。怎么做?
- 15. 将文件内容分配给变量
- 16. 将jQuery变量写入文件
- 17. 如何将变量写入XML文件?
- 18. 如何将变量写入文件?
- 19. Python:将多个变量写入文件
- 20. 将变量写入“.txt”文件中R
- 21. 将父包装变量写入文件
- 22. 使用Sendkeys将变量写入文件
- 23. 将某行文件写入变量
- 24. SQL Server BCP命令无法将NVARCHAR(MAX)变量内容写入文件
- 25. 将sql行的内容写入varchar变量
- 26. 长变量写入文件
- 27. 将文件内容写入新文件只写入字符串的一半
- 28. 如何将文件内容插入字符串变量?
- 29. 将输入文件内容保存到变量
- 30. 如何将文件内容读入SQL变量
然后,你需要安装'bc'。在'ubuntu'你有'awk',但不是'bc'作为默认值。 – Jotne