如果我运行命令cat file | grep pattern,我会得到很多输出行.如何将所有行连接成一行,有效地将每行替换"\n"为"\" "(以后"跟空格结尾)?
cat file | grep pattern | xargs sed s/\n/ /g
不适合我.
有输出sed:
http://sitename.com/galleries/83450
72-profile
Run Code Online (Sandbox Code Playgroud)
这两个字符串应合并为一个并用空格分隔,如:
http://sitename.com/galleries/83450 72-profile
Run Code Online (Sandbox Code Playgroud)
两个字符串是流水线的tr,以便用空格替换换行符:
tr '\n' ' '
Run Code Online (Sandbox Code Playgroud)
并且它不起作用,结果与输入相同.
使用ASCII代码指示空间会'\032'导致替换\n为不可打印的字符.
怎么了?我在Windows上使用Git Bash.
我想从文件中删除所有空行,但只有当它们位于文件的结尾/开始时(即,如果它们之前没有非空行,则在开始时;如果有最后没有非空行.)
这是否可能在Perl或Ruby等功能齐全的脚本语言之外?我宁愿用做这个sed或者awk如果可能的话.基本上,任何轻量级和广泛使用的UNIX-y工具都可以,特别是我可以快速了解更多(Perl,因此,不包括在内).
我的目标是匹配属于Yahoo!的电子邮件地址.域名系列.在*nix系统中(我将使用Ubuntu),这些方法中任何一种匹配模式的好处和缺点是什么?
如果还有其他更优雅的解决方案,我无法想象,请分享.
他们来了:
grep选项-i:grep -Ei "@(yahoo|(y|rocket)mail|geocities)\.com"
grep:tr [:upper:] [:lower:] < /path/to/file.txt | grep -E "@(yahoo|(y|rocket)mail|geocities)\.com"
grep -E "@([yY]ahoo|([yY]|[rR]ocket)[mM]ail|[gG]eo[cC]ities)\.[cC][oO][mM]" /path/to/file.txt
我想使用该tr命令将所有出现的字符串"\n"替换为新行(\n).
我试过,tr '\\n' '\n'但这似乎匹配任何'\'和任何'n'
让我们假设我有这个变量:
DATE="04/Jun/2014:15:54:26".
其中我需要更换/与\/为了得到字符串:
"04\/Jun\/2014:15:54:26".
我尝试tr如下:
echo "04\Jun\2014:15:54:26" | tr '\' '\\/'
但这会导致:"04\Jun\2014:15:54:26".
它不满足我.有人可以帮忙吗?
tr可以用两个字符替换一个字符吗?
我试图用"〜\n"替换"〜",但输出不会产生换行符.
$ echo "asdlksad ~ adlkajsd ~ 12345" | tr "~" "~\n"
asdlksad ~ adlkajsd ~ 12345
Run Code Online (Sandbox Code Playgroud) 是否可以tr在UNIX-Shell中使用命令删除特定字符串?例如:如果我键入:
tr -d "1."
Run Code Online (Sandbox Code Playgroud)
输入是1.1231,它会显示23为输出,但我希望它显示1231(注意只有第一个1已经消失).我该怎么办?
如果你知道一个解决方案或更好的方法,请解释语法,因为我不想复制和粘贴,但也要学习.
我对awk有很大的问题,所以如果你使用它,请解释一下.
要删除所有换行,请说:
tr -d '\n' < days.txt
cat days.txt | tr -d '\n'
Run Code Online (Sandbox Code Playgroud)
但是你如何使用它tr来删除文本文件末尾的新行呢?
我不确定只指定最后一个.
我正试图从俄罗斯短篇小说中提取一个单词列表.
#!/bin/sh
export LC_ALL=ru_RU.utf8
sed -re 's/\s+/\n/g' | \
sed 's/[\.!,—()«»;:?]//g' | \
tr '[:upper:]' '[:lower:]' | \
sort | uniq
Run Code Online (Sandbox Code Playgroud)
然而,这一tr步骤并没有降低西里尔字母大写.我以为我在使用便携式角色课时很聪明!
$ LC_ALL=ru_RU.utf8 echo "?" | tr [:upper:] [:lower:]
?
Run Code Online (Sandbox Code Playgroud)
如果它是相关的,我通过从Chrome浏览器窗口复制粘贴到Vim获得俄语文本.它看起来正好在屏幕上(Putty终端).这是在Cygwin的bash shell中 - 它应该与Linux上的Bash完全相同(应该!).
什么是在管道中小写unicode文本的便携,可靠的方法?