简体   繁体   English

如何使用 shell 脚本在空白字符串之前获取第一个字符串?

[英]How to get first string before blank string with shell script?

I have string lists我有字符串列表

Facades core/app/Firstmedia/Facades/FmSettingFacades.php
core/app/Firstmedia/FmSettingFacades.php
core/app/Http/Controllers/Frontpage/ContentController.php
core/app/Http/Controllers/Frontpage/HomeController.php
core/app/Http/Controllers/Frontpage/OTPController.php
core/resources/views/admin/pages/solution/form.blade.php
core/resources/views/frontpage/pages/content.blade.php
core/routes/web.php
backend core/resources/views/backend/pages/content.blade.php

I just want get first string before blank string我只想在空白字符串之前获取第一个字符串

Expected output:预期 output:

Facades
backend

I try this code我试试这段代码

#!/bin/bash
filename='copy.md'
n=1
tanggal=$(date +%d-%m-%Y)
tanggalWaktu=$(date +"%d-%m-%Y %H:%M:%S")
rm -rf ./update/$tanggal
mkdir -p ./update/$tanggal
mkdir -p ./logs

while read line; do
    echo "$line" | awk '{sub(/:.*/,x)}1'
done < $filename

If a row contains more than 1 column, output first column:如果一行包含多于 1 列,则 output 第一列:

awk 'NF>1{print $1}'

awk uses spaces and tabs as default field separator. awk使用空格和制表符作为默认字段分隔符。


See: 8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF , FILENAME, FNR请参阅: 8 个强大的 Awk 内置变量 - FS、OFS、RS、ORS、NR、 NF 、FILENAME、FNR

Assuming that blank string means one or more spaces:假设空白字符串表示一个或多个空格:

cut -f 1 -d ' ' "$filename"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM