我需要将字符串插入文本文件, 例如,在结束第一行之前。
STRINGS=`wc -l $OLDFILE \
| awk '{print $1-1}' \
| sed "s/$DOLLAR/+/g" \
| tr -d \\\n \
| sed "s/+$DOLLAR//" \
| bc`
ADDFILE=$3
head -n $STRINGS $OLDFILE > $NEWFILE
cat $ADDFILE >> $NEWFILE
tail -n 1 $OLDFILE >> $NEWFILE
你能建议简单的方法吗? 感谢
答案 0 :(得分:1)
awk 'f==1{print last}{last=$0;f=1}END{print "NEW WORD\n"$0}' file
答案 1 :(得分:1)
也许有点简单:
(tail -1 "$OLDFILE"; echo "hello there"; tac "$OLDFILE" | tail -n +2) | tac > "$NEWFILE"
答案 2 :(得分:1)
另一种(纯粹的bash)解决方案:
prev=
print=
IFS=
while read -r line; do
if [ "$print" ]; then
echo "$prev"
fi
print=1
prev="$line"
done < "$OLDFILE"
echo "hello there"
echo "$prev"
答案 3 :(得分:1)
最简单的一个:
head -n -1 "$OLDFILE"
echo "hello there"
tail -1 "$OLDFILE"
答案 4 :(得分:0)
我能想到的最简单的一个
sed -i "$ i Text to add" file.txt