我正在尝试将一些目录从一个位置移动到另一个位置,但我需要将其中一个保留在原处(所有文件都将保留在原处)。我尝试了几件事,但似乎没有任何效果。我已经测试了 DIR_COUNT 的值,它按预期工作。但是,当在条件或 case 语句中使用时,它不会按预期工作。
有条件的
#!/bin/bash
DIR_COUNT=$(find path/to/dir/*[^this_dir_stays_put] -type d -maxdepth 0 | wc -l)
echo $DIR_COUNT
if [[ $DIR_COUNT > 0 ]]
then
find path/to/dir/*[^this_dir_stays_put] -type d -maxdepth 0 -exec mv {} new/location \;
echo "Moving dirs."
else
echo "No dirs to move."
fi
Run Code Online (Sandbox Code Playgroud)
案件
#!/bin/bash
DIR_COUNT=$(find path/to/dir/*[^this_dir_stays_put] -type d -maxdepth 0 | wc -l)
echo $DIR_COUNT
case $DIR_COUNT in
0)
echo "No dirs to move."
*)
echo "Moving dirs."
find path/to/dir/*[^this_dir_stays_put] -type d -maxdepth 0 -exec mv …
Run Code Online (Sandbox Code Playgroud) 我正在 php 中制作 switch 函数,我想知道是否可以制作这样的情况之一:
switch($message){
case 'hi':
$output = $jsonWelcome;
break;
case preg_match('/start/', $message):
$output = $jsonHelp;
break;
}
Run Code Online (Sandbox Code Playgroud)
我想在 $message 例如:“项目启动”或“启动项目”时执行最后一种情况。我认为这是因为 preg_match 返回 0 或 1。有什么方法可以让这段代码起作用吗?
我有一个包含以下列和记录的表。我需要比较两列值(ColumnA 和 ColumnB),如果 ColumnB>ColumnA 则将第三列从“N”更新为“Y”
CREATE TABLE Test(ColumnA int,ColumnB int,Result Varchar(2))
INSERT INTO Test values(1,3,'N')
INSERT INTO Test values(2,1,'N')
INSERT INTO Test values(1,5,'N')
INSERT INTO Test values(8,7,'N')
Run Code Online (Sandbox Code Playgroud)
我需要更新第一行和第三行的 Result Column='Y' 因为 columnB>ColumnA
结果
ColumnA ColumnB Result
1 3 Y
2 1 N
1 5 Y
8 7 N
Run Code Online (Sandbox Code Playgroud) 我的表中有两列。表名是用inner join和group by构造的,我们称这个表为Joined
。它有两列Present
和Score
。如果Present
为 null,那么我想将 0 赋给该Score
值。
+------------+--------+-------------+------------+--------+
| Student_Id | Course | ExamDate | Present | Score |
+------------+--------+-------------+------------+--------+
| 1 | Math | 04/05/2020 | Yes | 45 |
| 2 | Math | 04/05/2020 | NULL | 90 |
| 2 | Math | 04/05/2020 | NULL | 50 |
+------------+--------+-------------+------------+--------+
Run Code Online (Sandbox Code Playgroud)
我现在所拥有的是
SELECT DISTINCT StudentID ,Course, ExamDate, Present, Score
CASE Present ISNULL
Score = 0
END
FROM Joined …
Run Code Online (Sandbox Code Playgroud) 我的 Scala 项目具有以下特征
sealed trait Value
case class Float(f: Double) extends Value
case class Bool(b: Boolean) extends Value
case object Error extends Value
Run Code Online (Sandbox Code Playgroud)
后来我有了价值lst: List[Value]
。
我正在尝试获取列表中第一个元素的值,lst.head.f
但出现以下错误Cannot resolve symbol f
。
从我从类似主题的其他堆栈溢出问题中收集的信息来看,它应该可以工作,但事实并非如此。
我可以在像这样的 bash 语句中使用函数而不是常规模式、字符串等吗case
?
#!/bin/bash
var="1"
is_one () {
[$var -eq 1]
}
case $var in
is_one)
"var is one"
;;
*)
"var is not one"
break
;;
esac
Run Code Online (Sandbox Code Playgroud) 例如,如果用户选择选项 1 - 3,它会执行他们自己的特定任务。如果用户输入 4,它会执行所有选项 1 - 3。有没有办法使用 switch 语句来完成此操作,而不必复制和粘贴每种情况下的所有代码?
switch (option) {
case 1: {
System.out.println("1");
break;
}
case 2: {
System.out.println("2");
break;
}
case 3: {
System.out.println("3");
break;
}
case 4: {
System.out.println("1");
System.out.println("2");
System.out.println("3");
break;
}
default: {
System.out.print("Invalid selection.");
break;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个数据框,我想根据数据框中的其他现有列(“th”和“br”)创建一个新列(“path”)。如果“th”中的值为“NA”,我想根据列“ce”和“br”创建新列。
可以使用以下代码创建可重现的数据样本:
df <- structure(list(
th = c(3, 1, NA, 2, 2, 0, 3, 3, 0, 2, 3, 2, 1, NA, 3, 4, 3, 3, 1, 3),
br = c(1, 2, 4, 1, 2, 2, 1, 2, 2, 5, 4, 1, 1, 2, 1, 5, 2, 1, 1, 1),
ce = c(2, 3, 2, 0, 1, 0, 2, 1, 1, 1, 1, 0, 0, 1, 2, 0, 0, 1, 1, 2)),
row.names = c(NA, 20L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
我用 if …
想象一下这张表:
id col1 col2 col3 col4
1 A A C
2 B B B
3 D D
Run Code Online (Sandbox Code Playgroud)
我想添加一列来告诉我该行的所有非空值是否匹配。
所以理想的输出是:
id col1 col2 col3 col4 is_a_match
1 A A C FALSE
2 B B B TRUE
3 D D TRUE
Run Code Online (Sandbox Code Playgroud)
我努力了:
select *,
case
when col1 = col2
and col2 = col3
and col3 = col4
then 'TRUE'
else 'FALSE'
end as is_a_match
from my_table
Run Code Online (Sandbox Code Playgroud)
false
但由于空值,将返回所有内容。
实现上述输出的最佳方法是什么?
我正在尝试比较同比数据,并且正在尝试使用案例语句以便按年份分割。我一直在尝试做的是
(Case
When year(date) = 2010 Then 'sales year 2010'
When year(date) = 2011 Then 'sales year 2011'
Else
End) as Year
Run Code Online (Sandbox Code Playgroud)
但上面的方法不起作用,因为我想按列获取每年的数据,而不是同一列下的行。
所以,接下来我尝试的是
(Case
When year(date) = 2010 Then sum(sales) End) as 'sales year 2010',
(Case
When year(date) = 2011 Then sum(sales) End) as 'sales year 2011'
Run Code Online (Sandbox Code Playgroud)
我得到了以下内容。
物品 | 2010年销售年度 | 2011年销售年度 |
---|---|---|
A | 无效的 | 2,500 人 |
A | 5,000 | 无效的 |
乙 | 无效的 | 200 |
乙 | 7,000 | 无效的 |
C | 无效的 | 2,500 人 |
C | 5,000 | 无效的 |
D | 无效的 | 200 |
D | 7,000 | 无效的 |
我想要得到的是这个。
物品 … |
---|
case ×10
sql ×4
bash ×2
if-statement ×2
class ×1
java ×1
mv ×1
null ×1
option ×1
php ×1
postgresql ×1
preg-match ×1
r ×1
regex ×1
scala ×1
sql-null ×1
sql-server ×1
sql-update ×1
sqlite ×1
traits ×1