簡體   English   中英

Bash 腳本使用 sed 到 append 行在文件末尾,如果 Mac 上不存在該行

[英]Bash script using sed to append line at end of file if line doesn't exist on mac

我需要使用 sed 而不是 echo 和 append 到文件末尾:list.txt

list.txt 有一個目錄列表:

/桌面/test1/file1

/桌面/test2/file1

如果列表中已經不存在該目錄,我需要 append 另一個目錄,該目錄在文件末尾帶有斜杠到此 list.txt。 如:/desktop/file1 結果應該是:

/桌面/test1/file1

/桌面/test2/file1

/桌面/文件1

我試過使用這個腳本,但是我看到的命令遇到語法錯誤,我看到這可能是一個 mac 問題?:

#!/bin/bash
if ! grep -q "/desktop/file1" user/admin/Desktop/list.txt; then
    sed -i -e '$a/desktop/file1' user/admin/Desktop/list.txt
fi

a命令在標准sed中用作a\ ,后跟換行符和要寫入的文本。 您使用的形式是 GNU 擴展。 因此,完成這項工作的標准sed命令可能是:

sed -i '' '$a\
/desktop/file1' user/admin/Desktop/list.txt

或者

sed -i '' '$a\'$'\n''/desktop/file1' user/admin/Desktop/list.txt

在 bash 中使用 ANSI-C 引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM