2010-03-25 14 views
2

給定一個純文本文件後添加某個字符串,在線路號爲NLINE時如何使用bash,awk,sed等,添加字符串STR,在行尾後只有n個空格?修改一個文本文件的確切行號,並在行尾

所以,舉例來說,如果這是行n線:

date march 13th 

5位,我們得到

date march 13th  STR 

和一個獲取新文件的修改。

感謝

+0

http://sed.sourceforge.net/sed1line.txt可能會有所幫助 – 2010-03-25 17:13:08

回答

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 
+0

+1妥善處理內部's'雙引號。當然,你也可以使用sprintf(「%」nsp「s」,「」)'編程方式合成來自* number *空格'nsp'的'sp'作爲OP的推斷,儘管我同意這是過度的OP知道前面有多少空間。 – vladr 2010-03-26 03:53:17

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

只是要小心,APPEND不包含sed的可能解釋的任何字符。

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 
相關問題