日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux shell脚本无法执行,报错syntax error near unexpected token `$'\r''解决方法

發(fā)布時間:2025/4/5 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux shell脚本无法执行,报错syntax error near unexpected token `$'\r''解决方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

運(yùn)行shell腳本時出現(xiàn):syntax error near unexpected token `$'\r“的錯誤,一般是格式的問題,比如直接從txt文檔拷貝過來的內(nèi)容;

解決方法:sed -i 's/\r//g' test.sh

sed遵循簡單的工作流:

  • 讀取(從輸入中讀取某一行)
  • 執(zhí)行(在某一行上執(zhí)行sed命令)
  • 顯示(把結(jié)果顯示在輸出中)
  • 默認(rèn)是顯示修改后內(nèi)容,不會修改原文件,除非使用-i?參數(shù)。

    常用參數(shù)及命令

    sed [-nefri]??'command'?test.txt??(盡量按照標(biāo)準(zhǔn)格式使用單引號)

    sed

    ?

    處理文本文件,并輸出到標(biāo)準(zhǔn)輸出(控制臺)

    ?

    command

    ?

    ?

    -e

    可以指定多個命令

    ?

    a

    新增

    ?

    -f

    指定命令文件

    ?

    c

    替換

    ?

    -n

    取消默認(rèn)控制臺輸出,與p一起使用可打印指定內(nèi)容

    ?

    d

    刪除

    ?

    -i

    輸出到原文件,靜默執(zhí)行(修改原文件的意思)

    ?

    i

    插入

    ?

    ?

    ?

    ?

    p

    打印,要和-n參數(shù)一起使用

    ?

    ?

    ?

    ?

    s

    替換(匹配局部替換)

    ?

    新增?a

    sed?'2a testContent'?test.txt

    在第?2?行后面新增一行內(nèi)容

    sed?'1,3a testContent'?test.txt

    在原文的第?1~3?行后面各新增一行內(nèi)容

    替換?c

    sed?'2c?testContent'?test.txt

    將第?2?行內(nèi)容整行替換

    sed?'1,3c?testContent'?test.txt

    將第?1~3?行內(nèi)容替換成一行指定內(nèi)容

    刪除?d

    sed?'2d'?test.txt

    刪除第?2?行

    sed?'1,3d'?test.txt

    刪除第1~3行

    插入?i

    sed?'2i?testContent'?test.txt

    在第?2?行前面插入一行內(nèi)容

    sed?'1,3i?testContent'?test.txt

    在原文的第?1~3?行前面各插入一行內(nèi)容

    打印?p

    sed?'2p'?test.txt

    重復(fù)打印第?2?行

    sed?'1,3p'?test.txt

    重復(fù)打印第1~3行

    sed -n '2p' test.txt

    只打印第?2?行

    sed?-n '1,3p'?test.txt

    只打印第?1~3?行

    sed -n '/user/p' test.txt

    打印匹配到user的行,類似grep

    sed -n '/user/!p' test.txt

    !?反選,打印沒有匹配到user的行

    sed -n 's/old/new/gp' test

    只打印匹配替換的行

    替換?s

    sed?'s/old/new/'?test.txt

    匹配每一行的第一個old替換為new

    sed?'s/old/new/gi'?test.txt

    匹配所有old替換為new,g?代表一行多個,i?代表匹配忽略大小寫

    sed?'3,9s/old/new/gi'?test.txt

    匹配第?3~9?行所有old替換為new

    ?

    參數(shù)?-e

    sed -e 's/系統(tǒng)/00/g' -e '2d' test.txt

    執(zhí)行多個指令

    ?

    參數(shù)?-f

    sed -f ab.log test.txt

    多個命令寫進(jìn)ab.log文件里,一行一條命令,效果同-e

    ?

    溫馨提示

    若不指定行號,則每一行都操作。

    $代表最后一行,雙引號內(nèi)的$代表使用變量。

    總結(jié)

    以上是生活随笔為你收集整理的linux shell脚本无法执行,报错syntax error near unexpected token `$'\r''解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。