Bash:从确定的列中拆分项目
Bash: splitting items from a definite column
我有一个 tsv
格式的文件,其中包含行 ->
1 New York, New York[10] 8,244,910 1 New York-Northern New Jersey-Long Island, NY-NJ-PA MSA 19,015,900 1 New York-Newark-Bridgeport, NY-NJ-CT-PA CSA 22,214,083
它有 3 个 tab
分隔列。这是 ->
1 New York, New York[10] 8,244,910
1 New York-Northern New Jersey-Long Island, NY-NJ-PA MSA 19,015,900
1 New York-Newark-Bridgeport, NY-NJ-CT-PA CSA 22,214,083
我想要 first column
的前 4 个 comma (',') seperated
元素,即 ->
1 New York, New York[10] 8,244,910
我的方法是cut -d',' -f1-4
,在这种情况下,我的方法给出的输出类似于->
1 New York, New York[10] 8,244,910 1 New York-Northern New Jersey-Long Island
我该如何解决这个问题?
原问题link:https://www.hackerrank.com/challenges/text-processing-cut-5?h_r=next-challenge&h_v=zen
您可以使用 awk 非常简单地完成此操作:
echo -e "1 New York, New York[10] 8,244,910\t1 New York-Northern New Jersey-Long Island, NY-NJ-PA MSA 19,015,900\t1 New York-Newark-Bridgeport, NY-NJ-CT-PA CSA 22,214,083" | awk -F '\t' ' { print } '
输出:
1 New York, New York[10] 8,244,910
你想要这个吗?
cut -d $'\t' -f-3
cut -f-2
<- 我的问题的答案
cut -f-3
<- HackerRank 问题的答案,因为它有一些缩进问题
(我只是按 tab
分开,然后取前两部分。)
我有一个
tsv
格式的文件,其中包含行 ->1 New York, New York[10] 8,244,910 1 New York-Northern New Jersey-Long Island, NY-NJ-PA MSA 19,015,900 1 New York-Newark-Bridgeport, NY-NJ-CT-PA CSA 22,214,083
它有 3 个
tab
分隔列。这是 ->1 New York, New York[10] 8,244,910
1 New York-Northern New Jersey-Long Island, NY-NJ-PA MSA 19,015,900
1 New York-Newark-Bridgeport, NY-NJ-CT-PA CSA 22,214,083
我想要
first column
的前 4 个comma (',') seperated
元素,即 ->1 New York, New York[10] 8,244,910
我的方法是
cut -d',' -f1-4
,在这种情况下,我的方法给出的输出类似于->1 New York, New York[10] 8,244,910 1 New York-Northern New Jersey-Long Island
我该如何解决这个问题?
原问题link:https://www.hackerrank.com/challenges/text-processing-cut-5?h_r=next-challenge&h_v=zen
您可以使用 awk 非常简单地完成此操作:
echo -e "1 New York, New York[10] 8,244,910\t1 New York-Northern New Jersey-Long Island, NY-NJ-PA MSA 19,015,900\t1 New York-Newark-Bridgeport, NY-NJ-CT-PA CSA 22,214,083" | awk -F '\t' ' { print } '
输出:
1 New York, New York[10] 8,244,910
你想要这个吗?
cut -d $'\t' -f-3
cut -f-2
<- 我的问题的答案
cut -f-3
<- HackerRank 问题的答案,因为它有一些缩进问题
(我只是按 tab
分开,然后取前两部分。)