将行插入到文件中特定位置的简单方法

发布于 2024-07-26 20:05:12 字数 352 浏览 7 评论 0原文

我需要将字符串插入文本文件, 例如,在倒数第一行之前。

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

您能建议执行此操作的简单方法吗? 谢谢

I need to insert string to text file,
for example, before first line from the end.

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

Can you suggest simple way to perform that?
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

眼眸里的快感 2024-08-02 20:05:12
awk 'f==1{print last}{last=$0;f=1}END{print "NEW WORD\n"$0}' file 
awk 'f==1{print last}{last=$0;f=1}END{print "NEW WORD\n"$0}' file 
清醇 2024-08-02 20:05:12

也许更简单一点:

(tail -1 "$OLDFILE"; echo "hello there"; tac "$OLDFILE" | tail -n +2) | tac > "$NEWFILE"

Maybe a bit simpler:

(tail -1 "$OLDFILE"; echo "hello there"; tac "$OLDFILE" | tail -n +2) | tac > "$NEWFILE"
一杯敬自由 2024-08-02 20:05:12

最简单的一种:

head -n -1 "$OLDFILE"
echo "hello there"
tail -1 "$OLDFILE"

The most simple one:

head -n -1 "$OLDFILE"
echo "hello there"
tail -1 "$OLDFILE"
北方的巷 2024-08-02 20:05:12

另一个(纯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"

Another (pure-bash) solution:

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"
巴黎盛开的樱花 2024-08-02 20:05:12

我能想到的最简单的一个

sed -i "$ i Text to add" file.txt

The simplest one I could think of

sed -i "$ i Text to add" file.txt
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文