![](/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.