簡體   English   中英

如何使用bash打印“\\n”字符?

[英]How to print "\n" character using bash?

我有一個 .csv 文件,其中一些字符串有一些特殊字符,如“\\n”(新行)。

我正在使用此腳本從第 1 列和第 3 列中提取數據:

while IFS=";" read f1 f2 f3 f4
do
        echo "\"$f1\" = \"$f3\";"
done < file.csv >file.txt

主要問題是在某些$f3 中我有\\n特殊字符,我需要打印它。

目前,這個腳本省略了這個角色。

例如,如果我有

\\nXPTO

它會打印

XPTO

我希望這會打印

\\nXPTO

謝謝

使用read -r防止read解釋轉義序列:

while IFS=";" read -r f1 f2 f3 f4
do
    echo "\"$f1\" = \"$f3\";"
done < file.csv >file.txt

旁注:雖然它可以像我上面展示的那樣用bash完成,但我同意Karafka 的觀點,即awk是解決這類問題的理想選擇,並且性能非常好。 比 bash 本身更好,因為輸入文件的大小很大。

awk來救援!

$ echo "a;b;\nXPTO;d" | awk -F';' '{print $1 "=" $3}'

a=\nXPTO

或文件輸入/輸出

$ awk ... input_file > output_file

暫無
暫無

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

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