修改文本文件的确切行号,并在行结束后添加某些字符串

时间:2010-03-25 17:11:14

标签: bash

给定一个纯文本文件,如何使用bash,awk,sed等,在行号NLINE处添加字符串STR,在行尾之后只有n个空格?

因此,例如,如果这是NLINE行:

date march 13th

5个空格,我们得到

date march 13th     STR

,一个人在新文件中获得修改。

由于

3 个答案:

答案 0 :(得分:3)

NLINE=2
s="somestring"
sp="     "
awk -vn="$NLINE" -vs="$s" -vsp="$sp" 'NR==n{$0=$0 sp s}1' file >temp
mv temp file

答案 1 :(得分:2)

$ NLINE=666
$ APPEND="    xxx"
$ sed "${NLINE}s/\$/${APPEND}/" FILENAME

请注意,APPEND不包含任何可能解释的字符。

答案 2 :(得分:0)

#!/bin/bash
NLINE=10
n=5
string="STR"
while read -r line
do
    if (( ++count == NLINE ))
    then
        printf "%s%${n}s%2\n" "$line" " " "$string"
    else
        echo "$line"
    fi
done < inputfile > outputfile