如何从shell中的特定列写?

时间:2014-12-30 04:33:31

标签: shell sh

我需要将值写入文本文件中的特定列,比如第10列。

touch test.txt
echo "232" >> test.txt           # I want 232 to start from 10th column of text file

怎么去?

2 个答案:

答案 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

要创建offsetprintf命令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/appendprintf

答案 1 :(得分:0)

for x in $(seq 10)
do
    echo -n ' '
done

echo "232" >> test.txt