我的文件内容为
123
234
345
我正在使用chmod a+x file_name.sh
循环读取文件的每一行。
我有一个类似的要求:我想在./file_name.sh
循环中删除文件的每一行。
反正有没有要在foreach循环中删除文件行?
这是我尝试过的:
foreach
我能够清除文件的内容,而且我不知道如何制作大小为零的文件。
答案 0 :(得分:1)
您要执行的操作称为“截断文件”。 PowerShell为此提供了一个cmdlet:
Clear-Content $source1
如果您想先做一些处理:先做,然后然后清除文件:
Get-Content $source1 | ForEach-Object {
# do stuff with content of $source1
}
Clear-Content $source1
在某些情况下,如果您要处理内容并使行保持在另一种情况下,则可以收集应保留在变量中的行并将其写回到文件中:
$remains = Get-Content $source1 | ForEach-Object {
if (<# some condition or other #>) {
# do stuff with matching lines
} else {
# output back to pipeline
$_
}
}
# write $remains back to file if it's not empty, otherwise clear file
if ($remains) {
$remains | Set-Content $source1
} else {
Clear-Content $source1
}