給定一個純文本文件後添加某個字符串,在線路號爲NLINE時如何使用bash,awk,sed等,添加字符串STR,在行尾後只有n個空格?修改一個文本文件的確切行號,並在行尾
所以,舉例來說,如果這是行n線:
date march 13th
5位,我們得到
date march 13th STR
和一個獲取新文件的修改。
感謝
給定一個純文本文件後添加某個字符串,在線路號爲NLINE時如何使用bash,awk,sed等,添加字符串STR,在行尾後只有n個空格?修改一個文本文件的確切行號,並在行尾
所以,舉例來說,如果這是行n線:
date march 13th
5位,我們得到
date march 13th STR
和一個獲取新文件的修改。
感謝
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妥善處理內部's'雙引號。當然,你也可以使用sprintf(「%」nsp「s」,「」)'編程方式合成來自* number *空格'nsp'的'sp'作爲OP的推斷,儘管我同意這是過度的OP知道前面有多少空間。 – vladr 2010-03-26 03:53:17
$ NLINE=666
$ APPEND=" xxx"
$ sed "${NLINE}s/\$/${APPEND}/" FILENAME
只是要小心,APPEND不包含sed的可能解釋的任何字符。
#!/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
http://sed.sourceforge.net/sed1line.txt可能會有所幫助 – 2010-03-25 17:13:08