标签: tr

将文件内容转换为小写

我有temp一些小写和大写内容的文件。

输入

我的temp文件内容:

hi
Jigar
GANDHI
jiga
Run Code Online (Sandbox Code Playgroud)

我想将所有upper转换为 lower

命令

我尝试了以下命令:

sed -e "s/[A-Z]/[a-z]/g" temp
Run Code Online (Sandbox Code Playgroud)

但得到了错误的输出。

输出

我想要它:

hi
jigar
gandhi
jiga
Run Code Online (Sandbox Code Playgroud)

什么需要在论证的替代部分sed

shell tcsh sed text-processing tr

101
推荐指数
5
解决办法
19万
查看次数

仅使用“tr”将多个空格替换为一个

我有一个文件,f1.txt

ID     Name
1      a
2         b
3   g
6            f
Run Code Online (Sandbox Code Playgroud)

空格数固定。仅使用一个空格替换所有空格的最佳方法是什么tr

这是我到目前为止:

cat f1.txt | tr -d " "
Run Code Online (Sandbox Code Playgroud)

但输出是:

IDName
1a
2b
3g
6f
Run Code Online (Sandbox Code Playgroud)

但我希望它看起来像这样:

ID Name
1 a
2 b
3 g
6 f
Run Code Online (Sandbox Code Playgroud)

请尽量避免sed

shell cut tr

93
推荐指数
4
解决办法
23万
查看次数

为什么不能从 OSX 上的 /dev/urandom 读取 tr?

一位同事建议通过以下命令创建一个随机密钥:

tr -dc A-Za-z0-9_\!\@\#\$\%\^\&\*\(\)-+= < /dev/urandom | head -c 32 | xargs
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

tr:非法字节序列

我担心/dev/urandom我的系统上没有。我试着用谷歌搜索找出如何安装这个文件,但我发现是空的。我试过了locate urandom,结果也是空的。(实际上,它找到了手册页,但这无济于事)

如何urandom在我的 Mac OSX 系统上使用?(狮子)

osx random tr

50
推荐指数
3
解决办法
3万
查看次数

将除最后一个以外的所有换行符替换为空格

除了最后一个换行符之外,如何用空格替换所有换行符。我可以使用将所有换行符替换为空格,tr但除了一些例外我怎么做?

bash shell-script text-processing tr

45
推荐指数
3
解决办法
6万
查看次数

如何让 tr 了解非 ascii(unicode)字符?

我正在尝试从文件(UTF-8)中删除一些字符。我tr为此目的使用:

tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat 
Run Code Online (Sandbox Code Playgroud)

文件包含一些外来字符(如“??????????”或“àé”)。tr似乎不理解它们:它将它们视为非 alpha 并删除。

我试过更改我的一些语言环境设置:

LC_CTYPE=C LC_COLLATE=C tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat
LC_CTYPE=ru_RU.UTF-8 LC_COLLATE=C tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat
LC_CTYPE=ru_RU.UTF-8 LC_COLLATE=ru_RU.UTF-8 tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat
Run Code Online (Sandbox Code Playgroud)

不幸的是,这些都没有奏效。

我怎样才能tr理解Unicode?

linux text-processing unicode tr

38
推荐指数
2
解决办法
1万
查看次数

从变量中删除所有空格、制表符、换行符等?

这是我得到的错误,它失败是因为一个变量的值应该是 2(我使用 a 得到这个select * from tabel)。我在那个变量中得到了空格。

+ 0 != 
         2
./setjobs[19]: 0:  not found.
Run Code Online (Sandbox Code Playgroud)

如何从该变量中删除所有这些空格或换行符?可以tr,,sed或任何帮助?

这就是我正在做的:

set_jobs_count=$(echo  "set heading off;
      select count(*) from oppar_db
      where ( oppar_db_job_name, oppar_db_job_rec ) in ($var) ;" | \
  sqlplus -s ${OP_ORA_USER}/${OP_ORA_PASS}@$OPERATIONAL_DB_NAME)
Run Code Online (Sandbox Code Playgroud)

这按建议工作:

| sed 's/[[:space:]]//g'
Run Code Online (Sandbox Code Playgroud)

但我仍然获得一个值,如:

  set_jobs_count=
  2
Run Code Online (Sandbox Code Playgroud)

shell sed whitespace tr newlines

34
推荐指数
2
解决办法
11万
查看次数

tr 抱怨“非法字节序列”

我是 UNIX 的新手,我正在使用 Kirk McElhearn 的“Mac OS X 命令行”自学一些命令。

我正在尝试使用trandgrep以便我可以在常规 MS-Office Word 文档中搜索文本字符串。

$ tr '\r' '\n' < target-file | grep search-string
Run Code Online (Sandbox Code Playgroud)

但它返回的只是:

Illegal byte sequence.
Run Code Online (Sandbox Code Playgroud)

robomechanoid:Position-Paper-Final-Draft robertjralph$ tr '\r' '\n' < Position-Paper-Final-Version.docx | grep DeCSS
tr: Illegal byte sequence
robomechanoid:Position-Paper-Final-Draft robertjralph$ 
Run Code Online (Sandbox Code Playgroud)

我实际上在我创建的脚本上运行了同一行,vi并且它正确地进行了搜索。

grep character-encoding text-processing binary tr

33
推荐指数
2
解决办法
5万
查看次数

生成随机密码;为什么这个不便携?

我想生成一个随机密码,并且这样做:

</dev/urandom tr -dc [:print:] | head -c 64
Run Code Online (Sandbox Code Playgroud)

在我运行 Ubuntu 的笔记本电脑上,这仅产生预期的可打印字符。但是,当我通过 ssh 连接到运行 Red Hat Enterprise Linux 的学校服务器并在那里运行时,我得到类似 的输出3!ri?b?Gr???1?H?<?oM????&?nMC[?Pb?|L%MP?????9??fL2q???IFmsd|l?K,但根本无法执行。这里可能出了什么问题?

shell character-encoding binary tr portability

22
推荐指数
2
解决办法
4476
查看次数

将单独的行转换为带引号条目的逗号分隔列表

我有以下数据(从 Rmarkdown 文件解析的 R 包列表),我想将其转换为可以传递给 R 进行安装的列表:

d3heatmap
data.table
ggplot2
htmltools
htmlwidgets
metricsgraphics
networkD3
plotly
reshape2
scales
stringr
Run Code Online (Sandbox Code Playgroud)

我想将列表转换为以下形式的列表:

'd3heatmap', 'data.table', 'ggplot2', 'htmltools', 'htmlwidgets', 'metricsgraphics', 'networkD3', 'plotly', 'reshape2', 'scales', 'stringr'
Run Code Online (Sandbox Code Playgroud)

我目前有一个从原始文件到上面列表的 bash 管道:

grep 'library(' Presentation.Rmd \
| grep -v '#' \
| cut -f2 -d\( \
| tr -d ')'  \
| sort | uniq
Run Code Online (Sandbox Code Playgroud)

我想添加一个步骤以将新行转换为逗号分隔列表。我试过添加tr '\n' '","',但失败了。我还尝试了以下 Stack Overflow 的一些答案,但也都失败了:

这产生library(stringr)))phics)了结果。

这产生,%了结果。

这个答案(-i去除了标志)产生与输入相同的输出。

linux sed csv tr

21
推荐指数
3
解决办法
3万
查看次数

这个 tr 命令中的点有什么作用: tr ........AZ A-ZA-Z &lt;&lt;&lt; "JVPQBOV" (with 13 dots)

我想用来tr做一些 rot13 转换。我可以很好地理解这个命令:

tr A-Za-z N-ZA-Mn-za-m <<< "URYC ZR CYRNFR"
Run Code Online (Sandbox Code Playgroud)

哪个输出是HELP ME PLEASE,但我不知道这个其他命令如何产生相同的 rot13 转换:

tr .............A-Z A-ZA-Z <<< "URYC ZR CYRNFR"
Run Code Online (Sandbox Code Playgroud)

所以我有两个问题:

  1. 第二个tr命令背后的魔法是什么?
  2. 如何使第二个命令既适用于小写又适用于大写,就像第一个命令一样?

tr

18
推荐指数
2
解决办法
3135
查看次数