![](/img/trans.png)
[英]How to print n number of characters appearing after a searched character in BASH?
[英]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.