我需要将值写入文本文件中的特定列,比如第10列。
touch test.txt
echo "232" >> test.txt # I want 232 to start from 10th column of text file
怎么去?
答案 0 :(得分:1)
printf
是提供偏移的另一种选择。它的优点是能够将偏移量(field width
)作为format specifier
的参数。以下内容将column offset
作为第一个参数和the data to write at that offset
作为第二个参数(使用您的默认值10/232
)例如:
#!/bin/sh
col="${1:-10}" # column offset (default: 10)
stuff="${2:-232}" # variable to write at offset
printf "%*s%s\n" "$col" "" "$stuff" # write $stuff at $col offset
exit 0
要创建offset
,printf
命令format specifier
只是说使用minimum field width
$col
来编写empty-string
({{ 1}})然后写下您的数据(在""
中),然后是$stuff
。将脚本保存为newline
:
<强>输出:强>
prncol.sh
当然要将输出写入$ bash prncol.sh
232
$ bash prncol.sh 5 501
501
$ bash prncol.sh 15 anything
anything
,只需test.txt
输出redirect/append
到printf
答案 1 :(得分:0)
for x in $(seq 10)
do
echo -n ' '
done
echo "232" >> test.txt