首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变量中的dos2unix

变量中的dos2unix
EN

Stack Overflow用户
提问于 2015-11-03 18:34:30
回答 3查看 2.6K关注 0票数 4

我需要在变量中执行dos2unix命令。对于文件,我们只做dos2unix myfile.txt。我怎么能用变量做到这一点呢?例如:

代码语言:javascript
复制
variable="bla\r"
dos2unix $variable

使用其他命令的建议也受到欢迎。

PS.:我不能从我正在读取文本的文件上执行dos2unix。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-03 18:41:34

这里不需要任何外部命令;您可以使用参数扩展来删除CR,只使用shell本身内置的功能,这样就可以更快地执行(使用相当短的字符串),并且保证可以在任何具有bash (或类似扩展的shell,例如ksh93或zsh)的系统上工作,即使没有安装dos2unix:

代码语言:javascript
复制
$ PS1='> ' # for readability, to distinguish output starting with '$' literals
> variable_in=$'bla\r'
> variable_out=${variable_in//$'\r'/}
> printf '%q\n' "$variable_in"
$'bla\r'
> printf '%q\n' "$variable_out"
bla
票数 3
EN

Stack Overflow用户

发布于 2015-11-03 18:41:03

dos2unix可以从标准输入中读取,因此可以编写echo "$variable" | dos2unix。试试这个:

代码语言:javascript
复制
$ variable=$'bla\r'

$ echo "$variable" | cat -A
bla^M$

$ echo "$variable" | dos2unix | cat -A
bla$
票数 3
EN

Stack Overflow用户

发布于 2015-11-03 18:40:09

您可以使用tr

代码语言:javascript
复制
echo "$variable"| tr -d '\r'

代码语言:javascript
复制
tr -d '\r' <<< "$variable"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33506553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档