我需要從file.txt
開始,其中包含的條目是這樣的:如何追加和打印文本文件中的數字?
1
2
3
4
5
我需要打印如下:
1,100
2,100
3,100
4,100
5,100
我嘗試這一點,但我收到一個無效的號碼錯誤:
printf '%d,100\n' "$(< file.txt)"
我需要從file.txt
開始,其中包含的條目是這樣的:如何追加和打印文本文件中的數字?
1
2
3
4
5
我需要打印如下:
1,100
2,100
3,100
4,100
5,100
我嘗試這一點,但我收到一個無效的號碼錯誤:
printf '%d,100\n' "$(< file.txt)"
這是「太多引號」中罕見的事件之一。注意:
$ cat file.txt
1
2
3
4
5
$ var=$(< file.txt)
$ echo "$var" # Quotes preserve original whitespace
1
2
3
4
5
$ echo $var # No quotes reduce all whitespace to single spaces
1 2 3 4 5
的報價作出echo
「看到」只是一個參數,即格式化文件的內容。如果沒有引號,每行都會成爲echo
的參數,並且它們之間用空格分隔。
所以,你可以用
$ printf '%d,100\n' $(< file.txt)
1,100
2,100
3,100
4,100
5,100
另一個解決方案解決你的問題是使用SED:
$ sed 's/$/,100/' file.txt
1,100
2,100
3,100
4,100
5,100
此替代線路,$
年底,與,100
,每行。
你可以使用
while read in; do echo "$in,100"; done < file.txt
您的錯誤是由printf
一次獲取整個文件造成的,而不是逐行讀取。
如何:
(set -f; set -- $(< file.txt)
printf '%d,100\n' "[email protected]")
您可以使用AWK:
$ awk '{printf "%s,100\n", $0}' file
1,100
2,100
3,100
4,100
5,100
seq 6 | awk '$0=$0",100"'
1,100
2,100
3,100
4,100
5,100
6,100