我有一个bash shell脚本循环遍历某个目录的所有子目录(但不是文件).问题是某些目录名称包含空格.
以下是我的测试目录的内容:
$ls -F test
Baltimore/ Cherry Hill/ Edison/ New York City/ Philadelphia/ cities.txt
Run Code Online (Sandbox Code Playgroud)
以及遍历目录的代码:
for f in `find test/* -type d`; do
echo $f
done
Run Code Online (Sandbox Code Playgroud)
这是输出:
test/Baltimore test/Cherry Hill test/Edison test/New York City test/Philadelphia
Cherry Hill和纽约市被视为2或3个单独的条目.
我尝试引用文件名,如下所示:
for f in `find test/* -type d | sed -e 's/^/\"/' | sed -e 's/$/\"/'`; do
echo $f
done
Run Code Online (Sandbox Code Playgroud)
但无济于事.
必须有一个简单的方法来做到这一点.
以下答案很棒.但为了使这更复杂 - 我并不总是想使用我的测试目录中列出的目录.有时我想将目录名称作为命令行参数传递.
我接受了查尔斯关于设置IFS的建议,并提出了以下建议:
dirlist="${@}"
(
[[ -z "$dirlist" ]] && dirlist=`find test -mindepth 1 -type d` && IFS=$'\n'
for …Run Code Online (Sandbox Code Playgroud) Groovy的添加isAllWhitespace()方法为字符串,这是伟大的,但似乎不是一个好办法确定如果字符串比其他的东西只是在它的空白.
我能想到的最好的是:
myString && !myString.allWhitespace
Run Code Online (Sandbox Code Playgroud)
但这似乎太冗长了.这似乎是验证的常见问题,必须有一种更简单的方法来确定这一点.
我有一个编程任务,其中一部分要求我创建从用户读取一行的代码并删除该行中的所有空格.该行可以包含一个或多个单词.
我试图用这个程序做的是让它分析每个字符,直到它找到一个空格,然后将该子字符串保存为第一个标记.然后再次循环,直到它不再有令牌或行尾.
我在尝试编译时继续这样做:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:694)
at trim.main(trim.java:23)
Run Code Online (Sandbox Code Playgroud)
这是代码
import java.util.Scanner ;
import java.lang.Character;
import java.lang.String ;
public class trim
{
public static void main (String[]args)
{
String a ;
String b ;
String c ;
char aChar ;
int i = 0 ;
Scanner scan = new Scanner(System.in);
a = scan.nextLine();
a =a.trim() ;
for ( ; i >= 0 ; i++ )
{
aChar = a.charAt(i) ;
if …Run Code Online (Sandbox Code Playgroud) 如何从jsp页面的输出中删除额外的空格?我可以在我的web.xml上翻转一个开关吗?是否有特定于Tomcat的设置?
target: dependencies
command1
command2
Run Code Online (Sandbox Code Playgroud)
在我的系统(Mac OS X)上,make似乎要求Makefile在每command行的内容之前有一个制表符,否则会引发语法错误.
在创建或编辑Makefile时,这是一个烦恼,因为我的编辑器设置为全时空间.
你可以制作没有制表符的有效Makefile吗?
我用Sublime text.现在我正在努力Atom.当我在sublime文本中保存任何文件时,它不包括任何尾随空白行.但保存任何文件都会Atom留下一个空白行.我如何强制Atom不留下尾随空格?
whitespace save removing-whitespace sublimetext3 atom-editor
假设我有一个字符串,例如:
"Hello how are you doing?"
Run Code Online (Sandbox Code Playgroud)
我想要一个将多个空格转换为一个空格的函数.
所以我会得到:
"Hello how are you doing?"
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用正则表达式或电话
string s = "Hello how are you doing?".replace(" "," ");
Run Code Online (Sandbox Code Playgroud)
但我必须多次调用它以确保所有连续的空格只用一个替换.
是否已有内置方法?
有没有办法pre通过CSS 模拟元素的显示?
例如,我可以使用CSS规则在此div中保持空格完整吗?
<div class="preformatted">
Please procure the following items:
- Soup
- Jam
- Hyphens
- Cantaloupe
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个简单的shell脚本,可以从文件中删除尾随空格.有没有办法让这个脚本更紧凑(没有创建临时文件)?
sed 's/[ \t]*$//' $1 > $1__.tmp
cat $1__.tmp > $1
rm $1__.tmp
Run Code Online (Sandbox Code Playgroud) 正则表达式的Java API 声明\s将匹配空格.所以正则表达式\\s\\s应匹配两个空格.
Pattern whitespace = Pattern.compile("\\s\\s");
matcher = whitespace.matcher(modLine);
while (matcher.find()) matcher.replaceAll(" ");
Run Code Online (Sandbox Code Playgroud)
这样做的目的是用一个空格替换两个连续空格的所有实例.然而,这实际上并不起作用.
我对正则表达式或"空白"这个词有严重的误解吗?