簡體   English   中英

在Windows下如何通過awk將單引號替換為雙引號?

[英]How to replace single quote to double quote by awk when under Windows?

我嘗試了gsub(),但是沒有用。 這是命令:

awk -v a="'"  b=" \" "  "gsub(a,b,$0){print $0}" D:\re.json

還是有人可以告訴我Windows命令行中正確的轉義字符是什么?

按照建議,將腳本放入文件中。 對於Windows,我們會將上下文理解為Windows批處理文件(而不是說mingw,它在命令行腳本方面有其自身的問題)。 對於Windows批處理文件

  • 在程序看到雙引號之前先將其刪除
  • 沒有充分記錄的方法來轉義雙引號
  • 單引號按原樣傳遞給程序(而不是像在Bourne shell中那樣用於引號)。

以下是討論這些問題的一些鏈接:

因此,規則與該構造所需的awk完全不同。 順便說一句,最后一個鏈接提供了一些線索,您可以使用這些線索來設計解決方法(以提高可讀性為代價)。 在批處理腳本轉義雙引號中也對此進行了討論。

作為一個單獨的文件,腳本也將更具可讀性,例如,調用該foo.awk

gsub("'"," \" ",$0){print $0}

並用作

awk -f foo.awk D:\re.json

暫無
暫無

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

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